我有一个包含以下字段和示例数据的SQL Server表:
ID employeename
1 Jane
2 Peter
3 David
4 Jane
5 Peter
6 Jane
ID
列的每一行都有唯一的值。employeename
列重复。我希望能够根据
employeename
列查找重复项,并在重复项的ID
旁边列出,并用逗号分隔。以上样本数据的预期输出:
employeename IDs
Jane 1,4,6
Peter 2,5
表中还有其他列我不想为此查询考虑。
感谢你的帮助!
最佳答案
select
employeename,
IDs = STUFF((SELECT ','+ CAST(e2.[ID] AS VARCHAR(10))
FROM emp e2
WHERE e2.employeename = e1.employeename
For XML PATH('')
),1,1,'')
FROM emp e1
GROUP BY employeename having COUNT(*) > 1
SQL Fiddler