对于我的情况,我试图应用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中查询中的一个连接。 –