我有4列,其中一列id
,其他列(A,B,C)
有二进制值。
我希望结果像(A,B,C)
列value = 1
。然后必须在新列(D)中以逗号分隔值显示特定列名。
我想要如下结果。有人可以帮帮我吗?
Id A B C D
1 1 1 0 A,B
2 0 1 0 B
3 0 1 0 B
4 1 0 1 A,C
5 1 0 1 A,C
答案 0 :(得分:1)
一个简单的CASE
表达式就可以了:
SELECT *,
D =
STUFF((
CASE
WHEN A = 1 THEN ',A'
ELSE ''
END +
CASE
WHEN B = 1 THEN ',B'
ELSE ''
END +
CASE
WHEN C = 1 THEN ',C'
ELSE ''
END
), 1, 1, '')
FROM tbl