Dor*_*eka 15 duplicates sql-server-2008-r2
我编写了一个查询来删除表中的重复记录
;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
Run Code Online (Sandbox Code Playgroud)
但我不知道我说错了
列名无效
duplicateRecCount
有人能帮我吗?
Ian*_*ton 37
您需要在删除语句中引用CTE ...
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
Run Code Online (Sandbox Code Playgroud)
小智 6
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
Run Code Online (Sandbox Code Playgroud)