編輯 - 刪除第三列尾隨空格
既然你說的彙總字段不必好看,試試這個:
SELECT M1.ID1, M1.ID2,
(
SELECT convert(nvarchar(50), ID3) + ','
FROM MyTable M2
WHERE M1.ID1 = M2.ID1 AND M1.ID2 = M2.ID2
FOR XML PATH('')
) M1
FROM MyTable M1
GROUP BY M1.ID1, M1.ID2
它假定你的表的名字叫'MyTable的'。這個查詢結果以逗號結尾,但應該讓你開始。用我的測試數據庫,這是輸出:
ID1 ID2 M1
1 1 5,8,
1 2 5,8,
2 3 10,11,
2 5 12,
如果你想它清理乾淨,這應該工作(儘管查詢本身是醜陋的):
SELECT ID1, ID2, left(M1, len(M1) - 1) AS M1
FROM
(
SELECT M1.ID1, M1.ID2,
(
SELECT convert(nvarchar(50), ID3) + ','
FROM MyTable M2
WHERE M1.ID1 = M2.ID1 AND M1.ID2 = M2.ID2
FOR XML PATH('')
) M1
FROM MyTable M1
GROUP BY M1.ID1, M1.ID2
) CleanedUp
+1組由+ XML路徑,但你應該考慮的東西()清理的S tring,看到這個:http://stackoverflow.com/questions/1591325/concatenating-records-in-a-single-column-without-looping/1594824#1594824 – 2010-09-27 12:47:59
@KM - 謝謝你的指針,感謝它 – LittleBobbyTables 2010-09-27 12:51:25