sql >> Databasteknik >  >> RDS >> Sqlserver

SQL:Ta bort dubblettposter i SQL Server

Tja, detta är en anledning till varför du bör ha en primärnyckel på bordet. Vilken version av SQL Server? För SQL Server 2005 och senare:

;WITH r AS
(
    SELECT col1, col2, col3, -- whatever columns make a "unique" row
    rn = ROW_NUMBER() OVER (PARTITION BY col1, col2, col3 ORDER BY col1)
    FROM dbo.SomeTable
)
DELETE r WHERE rn > 1;

Sedan, så att du inte behöver göra detta igen i morgon, och nästa dag, och dagen efter det, deklarera en primärnyckel på bordet.



  1. MariaDB CEIL() Förklarad

  2. Utmaningen är igång! Samhällsuppmaning för att skapa den snabbaste nummerseriegeneratorn

  3. Försöker få INSERT att bara infoga ny data

  4. Provstorlek och varaktighet för UPPDATERA STATISTIK:Spelar det någon roll?