ti-enxame.com

Excluindo registro duplicado no SQL Server

Escrevi uma consulta para remover registros duplicados de uma tabela

;WITH a as
(
SELECT Firstname,ROW_NUMBER() OVER(PARTITION by Firstname, empID ORDER BY Firstname) 
AS duplicateRecCount
FROM dbo.tblEmployee
)
--Now Delete Duplicate Records
DELETE FROM tblEmployee
WHERE duplicateRecCount > 1 

Mas eu não sei onde errei, está dizendo

Nome de coluna inválido duplicateRecCount

Alguém pode me ajudar?

14
Dorababu Meka

Você precisa fazer referência ao CTE na instrução delete ...

WITH a as
(
SELECT Firstname,ROW_NUMBER() OVER(PARTITION by Firstname, empID ORDER BY Firstname) 
AS duplicateRecCount
FROM dbo.tblEmployee
)
--Now Delete Duplicate Records
DELETE FROM a
WHERE duplicateRecCount > 1
35
Ian Preston
 DELETE duplicates FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY firstname, lastname, EMPNO, salary,dept  ORDER BY empno) cnt
 FROM tblEmp)  duplicates
WHERE duplicates.Cnt > 1
5
Ashish Sahu