SQL 逗号分隔多列列表

iok*_*ins 5 sql sql-server sql-server-2005

我的数据看起来像这样:

CUSTOMER_ID  OPERDAYSJUL  OPERDAYSAUG  OPERDAYSSEP ... OPERDAYSJUN
1            30           15           2
2            5            1            0
3            6            0            12
4            12           5            23
Run Code Online (Sandbox Code Playgroud)

对于每个 customer_id,我想要一个以逗号分隔的列表,指示客户运营的月份:

CUSTOMER_ID  OPERATING_MONTHS
1            Jul, Aug, Sep
2            Jul, Aug
3            Jul, Sep
4            Jul, Aug, Sep
Run Code Online (Sandbox Code Playgroud)

等等。我如何使用 SQL Server 2005 SQL(不是 T-SQL)轻松生成此逗号分隔列表?

我在 Stack Overflow 和其他地方看到的大多数解决方案似乎都是基于连接多个行值而不是列值来创建逗号分隔的列表:

  • T-SQL
  • FOR XML 路径('')
  • 关联子查询与 REPLACE/STUFF/SUBSTRING 结合

我错过了一些明显的东西吗?在此先感谢您的帮助或指向适当的现有解决方案的指示。

Tim*_*Tim 1

你可以做这样的事情。

CONCAT(CASE OPERDAYSJUL > 0 THEN "Jul," ELSE "" END,CASE OPERDAYSAUG > 0 THEN "Aug" ELSE "" END ... )
Run Code Online (Sandbox Code Playgroud)