我有一个选择查询,返回以下结果:
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
答案 0 :(得分:1)
您可以使用窗口功能:
select transaction, type, value,
max(case when type = 'b' then value end) over (partition by transaction) as new_value
from t;
如果您只希望交易的非NULL
值:
select transaction, type, value,
max(value) over (partition by transaction) as new_value
from t;