Joh*_*ohn 0 sql database sql-server
我想编写一个SQL Server查询,它可以选择所有逗号分隔列列表,其中该行的列值为"True".这就是我的表格,这里c1,c2,c3和c4是列
ID c1 c2 c3 c4
1 Yes No Yes No
2 Yes Yes No No
3 No Yes No No
4 Yes No No No
5 Yes No Yes No
6 Yes No No No
7 No No Yes No
Run Code Online (Sandbox Code Playgroud)
我的预期结果是:
1 c1, c3
2 c1, c2
3 c2
4 c1
5 c1, c3
6 c1
7 c3
Run Code Online (Sandbox Code Playgroud)
我尝试了很多,但没有运气.
您可以使用条件连接执行此操作:
select id,
stuff( (case when c1 = 'Yes' then ', c1' else '' end) +
(case when c2 = 'Yes' then ', c2' else '' end) +
(case when c3 = 'Yes' then ', c3' else '' end) +
(case when c4 = 'Yes' then ', c4' else '' end),
1, 2, ''
)
from t;
Run Code Online (Sandbox Code Playgroud)