This perhaps?DECLARE @MyData TABLE( id int NOT NULL, linked_to_worknumber varchar(20) NOT NULL, spec_checklist_id int)INSERT INTO @MyDataSELECT 18323, 'IP-DN-033774', 30 UNION ALLSELECT 24229, 'IP-DN-033774', 30 UNION ALLSELECT 18294, 'IP-DN-033808', 30 UNION ALLSELECT 28027, 'IP-DN-033808', 30 UNION ALLSELECT 18295, 'IP-DN-033810', 30 UNION ALLSELECT 19924, 'IP-DN-033810', 30SELECT *FROM @MyData-- Delete duplicates (with lower ID)DELETE T1FROM @MyData AS T1 JOIN @MyData AS T2 ON T2.id > T1.id AND T2.linked_to_worknumber = T1.linked_to_worknumber-- ... add other columns here that need to match for the record to be considered a "duplicate" ...SELECT *FROM @MyData