将行集转换为具有值列表的列

时间:2014-04-03 17:53:09

标签: sql sql-server

我需要将行列表转换为单列值。

例如:

ID           Value
1            v1
1            v2
1            v3
2            v4
2            v5
2            v6
2            v7 
and so on..

需要转换为

ID         New Value
1          v1,v2,v3
2          v4,v5,v6,v7

请告诉我如何在SQL server中编写查询。

感谢。

1 个答案:

答案 0 :(得分:5)

SELECT DISTINCT ID, 
  STUFF((SELECT ',' + Value
         FROM Table T
         WHERE T.ID = ID
         FOR XML PATH ('')), 1, 1, '') AS [New Value]
FROM Table
GROUP BY ID  

我是从这里得到的: https://stackoverflow.com/a/1785923/215752