2014-04-03 72 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

相關問題