如何获得以下sql查询的结果?

时间:2013-10-01 11:13:37

标签: sql-server sql-server-2008 tsql

我的桌子是这样的:

id name 
1  jid1
1  jid2
2  jid1
2  jid3

如何获得匹配的ID值,在上表jid1,jid2中具有相同的idjid1,jid3具有另一个相同的ID值。

如何获取这些匹配的记录?我需要如何为此编写查询?

预期输出:

id name
1 jid1,jid2
2 jid1,jid3

1 个答案:

答案 0 :(得分:3)

您可以使用FOR XML执行此操作,如下所示:

SELECT 
  t1.Id,
  STUFF((
    SELECT ', ' + t2.name
    FROM Tablename t2
    WHERE t2.ID   = t1.ID
    FOR XML PATH (''))
  ,1,2,'') AS Name
FROM Tablename t1
GROUP BY t1.Id;