基于字段值的串联:SQL

Concatenation based on field values : SQL

我下面有一个table

我想创建一个 SQL 查询来创建一个字段,该字段将在我们有值“是”的任何地方连接该字段的名称

输出应该是这样的

James|Denver|Houston|Orlando

Williom|Denver|Houston

Ron|Chicago|Dallas|Austin

Saviz|Chicago|Houston

如何实现

你应该找到一个更好的 table 我会说的设计。但是如果你需要使用完全相同的结构请试试这个,

SELECT
replace(
concat(NAME,'|'
,CASE WHEN Chicago='Yes' then "Chicago" end,'|'
,CASE WHEN Denver='Yes' then "Denver" end,'|'
,CASE WHEN Dallas='Yes' then "Dallas" end,'|'
,CASE WHEN Houston='Yes' then "Houston" end,'|'
,CASE WHEN Austin='Yes' then "Austin" end,'|'
,CASE WHEN Orlando='Yes' then "Orlando" end
),'||','|') as Output
from
yourtable