2014-04-03 42 views
0

我有要求将行列表转换为单列值的要求。将一组行转换为具有值列表的列

例:

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查询。

谢谢。

+0

http://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in-microsoft-sql-server-2005 –

回答

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

+6

@BoratSagdiyev - 如果是这样的话,我当然会在我的例子中将一个强制类型转换为varchar。如果这是一个不同的问题,请指出更多错误的内容。 – Hogan

相关问题