• great examples!

     

    If only duplicates need to be removed the ROW_NUMBER() may not be needed.

    WITH cteEmployeeOrderedByMyRank AS

    (SELECT RANK() OVER (PARTITION BY EMPID,FNAME,LNAME ORDER BY REFDATE ASC) AS PartitionRank

    , *

    FROM EMPLOYEE

    -- WHERE 1 = 1

    )

    DELETE FROM cteEmployeeOrderedByMyRank

    WHERE PartitionRank > 1 ;

     

    It surely seems to be much faster than the cursor based apporach.


    bm21