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 Server : find duplicates in a table based on values in a single column
-
29-05-2022 - |
Domanda
I have a SQL Server table with the following fields and sample data:
ID employeename
1 Jane
2 Peter
3 David
4 Jane
5 Peter
6 Jane
The ID
column has unique values for each row.
The employeename
column has duplicates.
I want to be able to find duplicates based on the employeename
column and list the ID
s of the duplicates next to them separated by commas.
Output expected for above sample data:
employeename IDs
Jane 1,4,6
Peter 2,5
There are other columns in the table that I do no want to consider for this query.
Thanks for all your help!
Soluzione
Altri suggerimenti
Here is a Northwind example:
Use Northwind
GO
SELECT
ord1.CustomerID,
OrderIdList = substring((SELECT ( ', ' + convert(varchar(16) , OrderID) )
FROM [dbo].[Orders] ord2
WHERE ord1.CustomerID = ord2.CustomerID
ORDER BY
CustomerID,
OrderID
FOR XML PATH( '' )
), 3, 1000 )FROM [dbo].[Orders] ord1
GROUP BY CustomerID
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow