【发布时间】:2009-10-23 01:38:09
【问题描述】:
我的数据如下所示:
CUSTOMER_ID OPERDAYSJUL OPERDAYSAUG OPERDAYSSEP ... OPERDAYSJUN
1 30 15 2
2 5 1 0
3 6 0 12
4 12 5 23
对于每个 customer_id,我想要一个以逗号分隔的列表,指示客户操作的月份:
CUSTOMER_ID OPERATING_MONTHS
1 Jul, Aug, Sep
2 Jul, Aug
3 Jul, Sep
4 Jul, Aug, Sep
等等。如何使用 SQL Server 2005 SQL(不是 T-SQL)轻松生成这个逗号分隔的列表?
我在 Stack Overflow 和其他地方看到的大多数解决方案似乎都是基于连接多行值而不是列值来创建逗号分隔的列表:
- T-SQL
- 用于 XML 路径('')
- 与 REPLACE/STUFF/SUBSTRING 结合的相关子查询
我是否遗漏了一些明显的东西?在此先感谢您提供帮助或指向适当的现有解决方案。
【问题讨论】:
-
为什么说“不是 T-SQL”? T-SQL 只是 SQL Server 使用的 SQL 方言的名称。 en.wikipedia.org/wiki/Microsoft_SQL_Server#T-SQL
-
感谢卢克的洞察力;我似乎用错了这个词。我想将答案限制为简单的 SELECT 查询语法,不受局部变量、临时表、循环等的影响。再次感谢。
标签: sql sql-server sql-server-2005