對於我的情況,我試圖應用stackoverflow解決方案here。用逗號分隔值的分組子句
下面是我的表:
專業:
Id Dish ChefId
1 Caviar 1
2 Caviar 2
3 Foie gras 2
4 Foie gras 3
5 Foie gras 5
6 Truffles 1
7 Truffles 4
廚師:
Id Name
1 Jake
2 Tara
3 Oscar
4 Linda
5 Wally
到目前爲止,我想出了下面的SQL語句:
SELECT Dish, ChefId =
STUFF((SELECT ', ' + CONVERT(varchar(10), ChefId)
FROM Specialty s1
WHERE s1.Dish = s2.Dish
FOR XML PATH('')), 1, 2, '')
FROM Specialty s2
GROUP BY Dish
結果是:
Dish Chef
Caviar 1, 2
Foie gras 2, 3, 5
Truffles 1, 4
不過,我想獲得的最終結果:
Dish Chef
Caviar Jake, Tara
Foie gras Tara, Oscar, Wally
Truffles Jake, Linda
發佈標記爲正確副本的鏈接 – scsimon
將專用s1添加到廚師表中並在xml路徑中使用廚師名稱而不是ID號 – twoleggedhorse
您已經完成了難題。要獲取名稱很簡單,它只是在STUFF中查詢中的一個連接。 –