从旧代码生成新代码的SQL代码[已关闭]

问题描述 投票:0回答:1

当前数据:

旧代码 新代码
HBP112 HBP0501
HBP112
HBP132 HBP0501
HBP132
HCIH112
HCIH112 HCIH0501

所需输出:

旧代码 新代码 所需代码
HBP112 HBP0501 HBP0501
HBP112 HBP0501
HBP132 HBP0501 HBP0501
HBP132 HBP0501
HCIH112 HCIH0501
HCIH112 HCIH0501 HCIH0501

我查询并尝试了你的用例表达式,但它不起作用

sql sql-server case common-table-expression coalesce
1个回答
1
投票

您可以在此处使用窗口聚合:

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;
© www.soinside.com 2019 - 2024. All rights reserved.