SQL Server:根据单个列中的值查找表中的重复项

sla*_*oah 3 sql sql-server duplicate-data duplicates

我有一个SQL Server表,其中包含以下字段和示例数据:

ID   employeename
1    Jane
2    Peter
3    David
4    Jane
5    Peter
6    Jane
Run Code Online (Sandbox Code Playgroud)

ID列具有每行的唯一值.

employeename列有重复项.

我希望能够根据employeename列找到重复项,并列出ID以逗号分隔的副本旁边的副本.

上述样本数据的预期输出:

employeename   IDs
Jane           1,4,6
Peter          2,5
Run Code Online (Sandbox Code Playgroud)

表中还有其他列,我不想为此查询考虑.

感谢你的帮助!

Eri*_*icZ 6

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
Run Code Online (Sandbox Code Playgroud)

SQL Fiddler