Pages

Monday, August 17, 2009

Removing Duplicate Rows


Here Is An Example To Remove The Duplicate Rows From A SQL Table Using CTE.
-- Create A Table with Some duplicate entries
CREATE TABLE MyTable (Fname VARCHAR(50), Lname VARCHAR(50))
INSERT INTO MyTable
SELECT 'Bheeshma', 'Nayak'
UNION ALL
SELECT 'Gyanendra', 'Nayak'
UNION ALL
SELECT 'Pratima', 'Nayak'
UNION ALL
SELECT 'Ramshri', 'Nayak'
UNION ALL
SELECT 'Bheeshma', 'Nayak'
UNION ALL
SELECT 'Gyanendra', 'Nayak'
GO /* Displaying All SIX Records */
SELECT *FROM MyTable
GO /* Deleteing Duplicate records Using Common Table Expression*/
WITH CTE (Fname,Lname, DupCount)
AS
(
SELECT Fname,Lname,ROW_NUMBER() OVER(PARTITION BY Fname,LnameORDER BY Fname) AS DupCount FROM MyTable
)
DELETE FROM CTE WHERE DupCount > 1
GO /* It Will give 4 Distinct Records */
SELECT *FROM MyTable
GO
Now Go and Enjoy....................
Thanks & Regards,
Bheeshma P. Nayak