So löschen Sie vollständig doppelte Zeilen

7

Angenommen, ich habe doppelte Zeilen in meiner Tabelle und mein Datenbankentwurf ist von der 3. Klasse: -

%Vor%

Ich möchte nur 1 Instanz jeder Zeile in meiner Tabelle vorhanden sein. Daher sollte 2nd, 3rd and last row whcih vollständig identisch sein. Welche Abfrage kann ich dafür schreiben? Kann es getan werden, ohne temporäre Tabellen zu erstellen? Nur in einer einzigen Abfrage?

Vielen Dank im Voraus:)

    
TCM 27.07.2010, 15:32
quelle

4 Antworten

18

Versuchen Sie es - es löscht alle Duplikate aus Ihrer Tabelle:

%Vor%

Ihre Duplikate sollten jetzt weg sein: Ausgabe ist:

%Vor%     
marc_s 27.07.2010, 15:51
quelle
4
%Vor%

Gestohlen aus Wie kann ich doppelte Zeilen entfernen?

UPDATE:

Dies funktioniert nur, wenn ProductId ein Primärschlüssel ist (was nicht der Fall ist). Du solltest besser die Methode @marc_s verwenden, aber ich lasse das auf, falls jemand, der ein PK benutzt, auf diesen Beitrag stößt.

    
Abe Miessler 27.07.2010 15:40
quelle
1

Ich musste das vor ein paar Wochen machen ... welche Version von SQL Server benutzen Sie? In SQL Server 2005 und höher können Sie Row_Number als Teil Ihrer Auswahl verwenden und nur auswählen, wo Row_Number 1 ist. Ich vergesse die genaue Syntax, aber es ist gut dokumentiert ... etwas in der Art von:

%Vor%

Sieh dir Ссылка an, das sollte dich in die richtige Richtung bringen.

>     
BenAlabaster 27.07.2010 15:44
quelle
0

Verwenden Sie zuerst eine SELECT... INTO :

%Vor%

Die erste Tabelle löschen.

    
eykanal 27.07.2010 15:37
quelle