Introduction:
Here will explain how to remove duplicate records or rows from a table in SQL Server or delete duplicate records from table in SQL Server.
Description:
In previous articles I explained take database backup in sql server, covert rows to columns in sql server without using pivot table, substring function in SQL server, Replace function in SQL Server, how to delete duplicate records from datatable in asp.net. Now I will explain how to delete duplicate records from a datatable in SQL server.
During work with one application I got requirement like get the unique records from datatable in sql server. Actually our datatable does not contain any primary key column because of that it contains duplicate records that would be like this
Here will explain how to remove duplicate records or rows from a table in SQL Server or delete duplicate records from table in SQL Server.
Description:
In previous articles I explained take database backup in sql server, covert rows to columns in sql server without using pivot table, substring function in SQL server, Replace function in SQL Server, how to delete duplicate records from datatable in asp.net. Now I will explain how to delete duplicate records from a datatable in SQL server.
During work with one application I got requirement like get the unique records from datatable in sql server. Actually our datatable does not contain any primary key column because of that it contains duplicate records that would be like this
Actually
above table does not contain any primary key column because of that same type
of records exist.
Now
I want to get duplicate records from datatable for that we need to write query
like this
WITH tempTable as
(
SELECT ROW_NUMBER() Over(PARTITION BY Name,Position ORDER BY Name) As RowNumber,* FROM EmployeData
)
SELECT * FROM tempTable
|
Once
we run above query we will get data like this
If
you observe above table I added another column RowNumber this column is used to know which record contains
duplicate values based on rows with RowNumber
greater than 1.
Now
we want to get the records which contains unique value from datatable for that
we need to write the query like this
WITH tempTable as
(
SELECT ROW_NUMBER() Over(PARTITION BY Name,Position ORDER BY Name) As RowNumber,* FROM EmployeData
)
DELETE FROM
tempTable where RowNumber >1
SELECT * FROM EmployeData order
by Id asc
|
Once
we run above query all duplicate records will delete from our table and that
would be like this
If you enjoyed this post, please support the blog below. It's FREE! Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email. |
|||
|
|||
2 comments :
I have doubt , after execute the Query where is the RowNumber Column?? ,Previous table you marked by red color to the column of RowNumber after execute it, It was hided how that was Happen???
tempTable is the temperory result set created using CTE in sql which has Rownumber in the selection but EmployeData is the actual table in database. Hope it helps.
Note: Only a member of this blog may post a comment.