How to remove duplicate records in a table?

后端 未结 3 1852
离开以前
离开以前 2020-12-21 11:15

I\'ve got a table in a testing DB that someone apparently got a little too trigger-happy on when running INSERT scripts to set it up. The schema looks like this:

         


        
3条回答
  •  南方客
    南方客 (楼主)
    2020-12-21 11:55

    WITH Duplicates(ID , TYPE_INT, SYSTEM_VALUE, NAME, MAPPED_VALUE )
    AS
    (
    SELECT  Min(Id)  ID  TYPE_INT, SYSTEM_VALUE, NAME, MAPPED_VALUE 
    FROM T1
    GROUP BY TYPE_INT, SYSTEM_VALUE, NAME, MAPPED_VALUE
    HAVING Count(Id) > 1
    )
    DELETE FROM T1
    WHERE ID IN (
    SELECT T1.Id
    FROM T1
    INNER JOIN Duplicates
    ON T1.TYPE_INT = Duplicates.TYPE_INT
    AND T1.SYSTEM_VALUE = Duplicates.SYSTEM_VALUE
    AND T1.NAME = Duplicates.NAME
    AND T1.MAPPED_VALUE = Duplicates.MAPPED_VALUE
    AND T1.Id <> Duplicates.ID
    ) 
    

提交回复
热议问题