【发布时间】:2017-12-08 16:12:44
【问题描述】:
假设我有一个临时表,如下所示:
+----+------+
| Id | Value|
+----+------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
+----+------+
我希望我的桌子是这样的:
+----+----------+
| Id | ValueList|
+----+----------+
| 1 | 1,2,3 |
| 2 | 1,2 |
+----+----------+
所以基本上我需要将我的值分组为一个逗号分隔的列表。 我已经尝试了以下方法:
SELECT Id, STUFF((SELECT ',' + CAST(VALUE AS varchar) FROM @MyTable FOR XML PATH('')), 1 ,1, '') AS ValueList
FROM @MyTable
GROUP BY Id
但我得到类似的东西:
+----+---------------------+
| Id | ValueList |
+----+---------------------+
| 1 | 1,1,1,1,1,1,... |
+----+---------------------+
我找不到我做错了什么。有人可以帮助这个查询吗?或者指出我正确的方向? 谢谢。
【问题讨论】:
标签: sql-server csv select