查询中的列组

时间:2017-06-23 08:43:35

标签: sql group-by

我有一个查询,我在这里获取以下列:

ID       Name       Age       Hobby

IDnameage来自Table A Hobby来自Table B

我可以获得的结果示例如下:

ID       Name       Age       Hobby
0        John       35        Fishing
0        John       35        Tennis
0        John       35        Hiking
1        Jane       31        Fishing
2        Nate       42        Fishing
2        Nate       42        Tennis

我希望得到的结果如下:

ID       Name       Age       Hobby
0        John       35        Fishing, Tennis, Hiking
1        Jane       31        Fishing
2        Nate       42        Fishing, Tennis

有关如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:1)

试试这个:

;WITH CTE AS(
    SELECT DISTINCT ID,NAME,AGE
    FROM TableName
)
SELECT *,
     STUFF(SELECT ','+ Hobby FROM TableName t1 WHERE t1.ID=CTE.ID FOR XML PATH(''),1,1,'')
FROM CTE