Löschen doppelter Datensätze mit Hilfe einer Abfrage nur
Ich bin mit SQL server 2005.
Ich habe eine Tabelle wie diese -
ID Name
1 a
1 a
1 a
2 b
2 b
3 c
4 d
4 d
In diesem, ich möchte zu löschen alle doppelten Einträge, und behalten Sie nur eine Instanz als -
ID Name
1 a
2 b
3 c
4 d
Ich kann dies einfach durch hinzufügen weiterer identity-Spalte in dieser Tabelle und mit eindeutigen Nummern in es und löschen Sie doppelte Datensätze. Aber ich möchte wissen, ob ich das löschen kann doppelte Datensätze ohne das hinzufügen, dass zusätzliche Spalte zu dieser Tabelle.
Zusätzlich, wenn dies geschehen kann mit nur einer Abfrage-Anweisung. also Ohne Verwendung von Gespeicherten Prozeduren oder temporären Tabellen.
- Warum haben Sie sich genehmigen, diese ungültigen vorgeschlagen Bearbeiten? Bitte nehmen Sie einige Zeit, um überprüfen, dass das richtige ist.
- Seine jetzt bearbeitet auf die richtige Weise. danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit einem ROW_NUMBER in einem CTE ermöglicht es Ihnen, um doppelte Werte unter Beibehaltung eindeutige Zeilen.
Lieven Recht... allerdings möchten Sie vielleicht zu zwicken lieven code, indem Sie nur eine top-Klausel in der delete-Anweisung wie folgt aus:
delete top(1) von q, wo RN > 1;
Hoffe, das hilft
Können Sie diese Abfrage verwenden: