; WITH cte_Delete_Dups AS( SELECT ROW_NUMBER() OVER ( PARTITION BY row_id, ename, job, sal ORDER BY row_id ) AS RN, * FROM empl)DELETEFROM cte_Delete_DupsWHERE rn > 1
DROP table #emplCREATE TABLE #empl( row_id int, ename varchar(120), job varchar(120), sal varchar(100))INSERT #empl VALUES ('4','ram','IT','60000'), ('4','ram','IT','60000'), ('4','ram','IT','60000'), ('4','ram','IT','60000');WITH OrderedData AS ( SELECT row_id, ename, job, sal, rn = ROW_NUMBER() OVER(PARTITION BY row_id, ename, job, sal ORDER BY row_id, ename, job, sal) FROM #empl) DELETE OrderedData WHERE rn > 1SELECT * FROM #empl