Löschen Sie Duplikate aus einer Tabelle in SQL Server
Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie doppelte Zeilen aus einer Tabelle in SQL Server löschen.
Um die doppelten Zeilen aus der Tabelle in SQL Server zu löschen, gehen Sie folgendermaßen vor:
- Suchen Sie doppelte Zeilen mit
GROUP BYKlausel oderROW_NUMBER()Funktion. - Verwenden Sie
DELETEAnweisung, um die doppelten Zeilen zu entfernen.
Lassen Sie uns eine Beispieltabelle für die Demonstration einrichten.,
Einrichten einer Beispieltabelle
Erstellen Sie zunächst eine neue Tabelle mit dem Namen sales.contacts wie folgt:
Zweitens fügen Sie einige Zeilen in die sales.contacts Tabelle ein:
Drittens Abfragen von Daten aus der sales.contacts Tabelle:
Code language: SQL (Structured Query Language) (sql)
Das folgende Bild zeigt die Ausgabe der Abfrage:
Es gibt viele doppelte Zeilen (3,4,5), (6,7) und (8,9) für die Kontakte, die denselben Vornamen, Nachnamen und dieselbe E-Mail haben.,
Doppelte Zeilen aus einer Tabelle löschen Beispiel
Die folgende Anweisung verwendet einen Common table expression (CTE), um doppelte Zeilen zu löschen:
In dieser Anweisung:
- Zuerst verwendet die CTE die
ROW_NUMBER()Funktion, um die doppelten Zeilen zu finden, die durch Werte in derfirst_name,last_nameundemailSpalten. - Dann löscht die
DELETEAnweisung alle doppelten Zeilen, behält aber nur ein Vorkommen jeder doppelten Gruppe bei.,
SQL Server gab die folgende Meldung aus, dass die doppelten Zeilen entfernt wurden.
Wenn Sie erneut Daten aus der Tabelle sales.contacts abfragen, werden alle doppelten Zeilen gelöscht.
In diesem tutorial haben Sie gelernt, so löschen Sie doppelte Zeilen aus einer Tabelle in SQL Server.