select语句从另一行返回值

我有一个选择查询,返回以下结果:

Transaction  Type   Value
-----------  ----   -----
1            A      Null
1            A      Null
1            B      1234
2            A      Null
2            A      Null
2            B      4321

我将如何形成它,以便将类型A中的Null值替换为类型B中的值?要获得此结果:

Transaction  Type  Value
-----------  ----  -----
1            A     1234
1            A     1234
1            B     1234
2            A     4321
2            A     4321
2            B     4321
buguizebinggan 回答:select语句从另一行返回值

您可以使用窗口功能:

select transaction,type,value,max(case when type = 'b' then value end) over (partition by transaction) as new_value
from t;

如果您只希望交易的非NULL值:

select transaction,max(value) over (partition by transaction) as new_value
from t;
本文链接:https://www.f2er.com/3170064.html

大家都在问