How to delete duplicate rows in SQL Server?

后端 未结 23 1283
长情又很酷
长情又很酷 2020-11-22 00:58

How can I delete duplicate rows where no unique row id exists?

My table is

col1  col2 col3 col4 col5 col6 col7
john  1          


        
23条回答
  •  南笙
    南笙 (楼主)
    2020-11-22 01:58

    DECLARE @TB TABLE(NAME VARCHAR(100));
    INSERT INTO @TB VALUES ('Red'),('Red'),('Green'),('Blue'),('White'),('White')
    --**Delete by Rank**
    ;WITH CTE AS(SELECT NAME,DENSE_RANK() OVER (PARTITION BY NAME ORDER BY NEWID()) ID FROM @TB)
    DELETE FROM CTE WHERE ID>1
    SELECT NAME FROM @TB;
    --**Delete by Row Number** 
    ;WITH CTE AS(SELECT NAME,ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY NAME) ID FROM @TB)
    DELETE FROM CTE WHERE ID>1;
    SELECT NAME FROM @TB;
    

提交回复
热议问题