Thursday, September 11, 2014

Remove Duplicate Records from table in SQL Server 2012

Step1: Create table
CREATE TABLE [dbo]. [Employee] (
                 [Eid] [int] NULL,
                 [Ename] [varchar] (50) NULL
) ON [PRIMARY]

Step2: Insert records
INSERT INTO [dbo].[Employee]
            ([Eid]
           , [Ename]
           ,[Sal])
     VALUES
            (1, 'ram'),
                                    (1, 'ram'),
                                    (2, 'Kisho'),
                                    (2, 'Kisho'),
                                    (2, 'Kisho'),
GO

Step3:Select table

SELECT * FROM Employee


Step4:Create Common table expression used to find duplicate records using below code
WITH TempEmp (EName, DuplicateRecords)
AS
(
SELECT Ename, ROW_NUMBER() OVER(PARTITION BY Ename ORDER BY Ename) AS DuplicateRecords
FROM Employee
)
DELETE FROM TempEmp WHERE DuplicateRecords > 1

Step5:Output of the table

SELECT * FROM Employee