; WITH EmployeesCTEAS( SELECT ROW_NUMBER() OVER( PARTITION BY EmpID, EmpName ORDER BY EmpID ) AS RowNumber, EmpID, EmpName FROM Employees)DELETEFROM EmployeesCTEWHERE RowNumber != 1
DECLARE @tbl TABLE( EMPID INT, EmpName VARCHAR(100))INSERT INTO @tblSELECT1, 'aaa'UNION ALLSELECT1, 'aaa'UNION ALLSELECT2, 'aaa'UNION ALLSELECT3, 'bbb'UNION ALLSELECT2, 'bbb'DELETE D FROM(SELECT ROW_NUMBER() OVER(PARTITION BY EMPID,EmpName ORDER BY EMPID) AS ROWS, EMPID, EmpNameFROM @tbl)DWHERE ROWS > 1SELECT * FROM @tbl