我有具有以下值的表:顯示列值到
case code id
100 A10 1
100 A11 2
100 A12 3
101 A11 4
102 A10 5
我需要編寫一個查詢得到以下的輸出:
case code
100 A10, A11, A12
101 A11
102 A10
任何幫助,將不勝感激。謝謝。
我有具有以下值的表:顯示列值到
case code id
100 A10 1
100 A11 2
100 A12 3
101 A11 4
102 A10 5
我需要編寫一個查詢得到以下的輸出:
case code
100 A10, A11, A12
101 A11
102 A10
任何幫助,將不勝感激。謝謝。
使用的東西,你可以得到預期的結果
DECLARE @Test Table([case] int, [code] varchar(20))
INSERT @Test([case],[code])
VALUES
(100,'A10'), (100,'A11'),
(100,'A12'), (101,'A11'), (102, 'A10')
SELECT DISTINCT [case],
STUFF((SELECT ', '+ code
FROM @Test T1
WHERE T1.[case] = T2.[case]
FOR XML PATH('')), 1, 1,''
) AS code
FROM @Test T2
在這個答案中的技術的未重複的副本:http://stackoverflow.com/a/5981860/1507566 –
@TabAlleman:與FOR XML PATH一起使用STUFF是字符串連接中用於創建逗號分隔格式的常用模式。更多的我只使用我的[舊答案](http://stackoverflow.com/a/33955969/2451726)。不同意你的倒票。 – Arulkumar
與其回答已經在本網站上提出並回答的問題,我們應該引導新的提問者回答重複問題,而不是讓更多重複的網站混亂。你自己已經回答了這個問題,並重復了你自己的答案,這隻能強化我的觀點。 –
看看這個問題,答案 - http://stackoverflow.com/questions/273238/how-to-use-group-by-to -concatenate-strings-in-sql-server – Alexei
最好的幫助是幫助你自己。谷歌PIVOT或CROSSTAB – Adish
這個questin [這裏]有一個很好的帖子(http://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate-strings-in-sql-server ) –