sql >> データベース >  >> RDS >> Sqlserver

テーブル内の重複レコードを削除するには?

    テーブル名は付けませんが、このようなものが機能すると思います。たまたま最も低いIDを持つレコードを残すだけです。最初に ROLLBACK を使用してテストすることをお勧めします!

    BEGIN TRAN
    DELETE <table_name>
    FROM <table_name> T1
    WHERE EXISTS(
    SELECT * FROM <table_name> T2 
    WHERE     
    T1.TYPE_INT = T2.TYPE_INT  AND
    T1.SYSTEM_VALUE = T2.SYSTEM_VALUE  AND
    T1.NAME = T2.NAME  AND
    T1.MAPPED_VALUE = T2.MAPPED_VALUE  AND
    T2.ID > T1.ID
    )
    
    SELECT * FROM <table_name>
    
    ROLLBACK
    


    1. MySQL-最小値を取得しています

    2. 8000 文字を超えないテキスト列

    3. PIVOT Oracle-複数の行データを、集計データなしで複数の列を持つ単一の行に変換します

    4. sp_dropserver と sp_addserver が機能しない