我在这里遇到小问题。我有一张4柱的桌子
Column1 | Column2 | Column3 | Column4
NULL.........NULL.........NULL.........NULL
ABC..........NULL..........XYZ...........NULL
第1,2和1,2列3可能有一些值或null,column4为null
当column1,2或3中的任何一个不为null时,我必须使用该列名更新column4。我期待以下结果
Column1 | Column2 | Column3 | Column4
NULL.........NULL.........NULL.........NULL
ABC..........NULL..........XYZ...........Column1,Column3
任何人都可以指导我如何实现这一结果
任何帮助表示赞赏。提前谢谢。
答案 0 :(得分:2)
使用大小写来测试空值,并在非空值时返回列名。 这些东西可以删除你在字符串中首先得到的额外逗号。
update YourTable
set Column4 = stuff(case when Column1 is not null then ',Column1' else '' end +
case when Column2 is not null then ',Column2' else '' end +
case when Column3 is not null then ',Column3' else '' end, 1, 1, '')