SQL Server 2008: delete duplicate rows

后端 未结 6 898
北荒
北荒 2020-12-13 11:29

I have duplicate rows in my table, how can I delete them based on a single column\'s value?

Eg

uniqueid, col2, col3 ...
1, john, simpson
2, sally, ro         


        
6条回答
  •  借酒劲吻你
    2020-12-13 12:13

    DECLARE @du TABLE (
        id INT,  
        Name VARCHAR(4)
    )
    
    INSERT INTO @du VALUES(1,'john')
    INSERT INTO @du VALUES(2,'jane')
    INSERT INTO @du VALUES(1,'john')
    
    ;WITH dup (id,dp)
    AS
    (SELECT id
    , ROW_NUMBER() OVER(PARTITION BY id ORDER BY Name) AS dp
    FROM @du)
    DELETE FROM dup
    WHERE dp > 1
    
    SELECT *
    FROM @du
    

提交回复
热议问题