当前数据:
旧代码 | 新代码 |
---|---|
HBP112 | HBP0501 |
HBP112 | 空 |
HBP132 | HBP0501 |
HBP132 | 空 |
HCIH112 | 空 |
HCIH112 | HCIH0501 |
所需输出:
旧代码 | 新代码 | 所需代码 |
---|---|---|
HBP112 | HBP0501 | HBP0501 |
HBP112 | 空 | HBP0501 |
HBP132 | HBP0501 | HBP0501 |
HBP132 | 空 | HBP0501 |
HCIH112 | 空 | HCIH0501 |
HCIH112 | HCIH0501 | HCIH0501 |
我查询并尝试了你的用例表达式,但它不起作用
您可以在此处使用窗口聚合:
select *, Max(new_code) over(partition by old_code) Required_code
from t;
工作示例Fiddle
编辑
如果您的空值实际上不是
NULL
,而是字符串值'NULL'
,则使用NULLIF
(并修复您的数据)
select *, Max(nullif(new_code, 'NULL')) over(partition by old_code) Required_code
from t;