我的数据看起来像这样:
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
- FOR XML 路径('')
- 关联子查询与 REPLACE/STUFF/SUBSTRING 结合
我错过了一些明显的东西吗?在此先感谢您的帮助或指向适当的现有解决方案的指示。
这会去掉多余的逗号
SELECT
CUSTOMER_ID,
SUBSTRING(
CASE WHEN OPERDAYSJUL > 0 THEN ', Jul' ELSE '' END +
CASE WHEN OPERDAYSAUG > 0 THEN ', Aug' ELSE '' END +
...
CASE WHEN OPERDAYSJUN > 0 THEN ', Jun' ELSE '' END,
3, 255)
FROM TheTable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)