我正在尝试提供用于计算“ MERGE”列的代码。 基本上,我应该检查是否CLM_x> 0,然后从SZ_x中获取值,并与CLM_x中的值进行连接。 我正在尝试使用情况,但是如果CLM_x = 0,我不知道如何跳过合并: 当CLM_TBL1> 0时为例('Size'+ SZ_1 +'-Qty'+ CLM_1)else ... end ...
请告知,谢谢!
答案 0 :(得分:5)
好这是一堆字符串运算:
select stuff( ((case when clm1_1 > 0 then concat(', Size ', sz_1, '-Qty ', clm1_1) else '' end) +
(case when clm1_2 > 0 then concat(', Size ', sz_2, '-Qty ', clm1_2) else '' end) +
(case when clm1_3 > 0 then concat(', Size ', sz_3, '-Qty ', clm1_3) else '' end)
), 1, 2, ''
) as merge_column
答案 1 :(得分:1)
您只需要将case语句串在一起即可。
merge =
case
when CLM_1 > 0 then 'Size ' + SZ_1 + '-Qty '+ CLM_1 + ' '
else ''
end
+
case
when CLM_2 > 0 then 'Size ' + SZ_2 + '-Qty '+ CLM_2 + ' '
else ''
end
+
case
when CLM_3 > 0 then 'Size ' + SZ_3 + '-Qty '+ CLM_3 + ' '
else ''
end