04/10/2011
Removing Duplicate Records in a SQL Server Table
Step 1: Creating a Table
/* Create Table with 7 entries - 3 are duplicate entries */ CREATE TABLE DuplicateRcordTable (Col1 INT, Col2 INT)
Step 2: Inserting data into the table
INSERT INTO DuplicateRcordTable SELECT 1, 1 UNION ALL SELECT 1, 1 --duplicate UNION ALL SELECT 1, 1 --duplicate UNION ALL SELECT 1, 2 UNION ALL SELECT 1, 2 --duplicate UNION ALL SELECT 1, 3 UNION ALL SELECT 1, 4 GO
Step 3: Selecting Data
/* It should give you 7 rows */ SELECT * FROM DuplicateRcordTable GO
Step 4: Deleting the Duplicate Records
/* Delete Duplicate records */ WITH CTE (COl1,Col2, DuplicateCount) AS ( SELECT COl1,Col2, ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount FROM DuplicateRcordTable ) DELETE FROM CTE WHERE DuplicateCount > 1 GO
Step 5: Selecting the records after deleting the duplicate records
/* It should give you Distinct 4 records */ SELECT * FROM DuplicateRcordTable GO