ta bort dubbletter från en tabell i SQL Server
sammanfattning: i den här handledningen lär du dig att ta bort dubbla rader från en tabell i SQL Server.
om du vill ta bort dubblettraderna från tabellen i SQL Server följer du följande steg:
- hitta dubblettrader med
GROUP BY
– klausulen ellerROW_NUMBER()
– funktionen. - använd
DELETE
– satsen för att ta bort dubblettraderna.
Låt oss ställa in en provtabell för demonstrationen.,
ställa in en provtabell
skapa först en ny tabell med namnetsales.contacts
enligt följande:
För det andra, sätt in några rader i tabellensales.contacts
:
För det tredje, frågedata från tabellensales.contacts
:
Code language: SQL (Structured Query Language) (sql)
följande bild visar resultatet av frågan:
det finns många dubbla rader (3,4,5), (6,7) och (8,9) för kontakterna som har samma förnamn, efternamn och e-post.,
ta bort dubbla rader från ett tabellexempel
följande uttalande använder ett vanligt tabellexpression (CTE) för att ta bort dubbla rader:
i detta uttalande:
- först använder CTE funktionen
ROW_NUMBER()
för att hitta de dubbla rader som anges av värden ifirst_name
,last_name
ochemail
kolumner. - då raderar
DELETE
alla dubblettrader men behåller bara en förekomst av varje dubblettgrupp.,
SQL Server utfärdade följande meddelande som indikerar att de dubbla raderna har tagits bort.
om du frågar data från tabellen sales.contacts
igen kommer du att upptäcka att alla dubbla rader raderas.
i den här handledningen har du lärt dig hur du tar bort dubbla rader från en tabell i SQL Server.