SQl Lösche die obersten 100 aus der Tabelle

8

Ich versuche, alle außer den letzten 3.000 Elementen in einer Tabelle zu löschen. Die Tabelle hat 105.000 Datensätze.

Ich probiere das, aber ein Fehler wird inkorrekter Syntax erzeugt.

%Vor%     
Bryan 30.04.2009, 21:53
quelle

5 Antworten

18

Die Löschsyntax wird etwas anders sein als das, was Sie haben. Ein Beispiel wäre:

%Vor%

Beachten Sie, dass das Schlüsselwort "from" vorhanden ist. Dies heißt, dass wir aus der Tabelle tRealtyTrac

löschen möchten

Das einzige Problem, das ich damit voraussehe, ist, dass Sie wahrscheinlich keine Kreation verwenden wollen ...

Stattdessen:

%Vor%

Andernfalls löschen Sie möglicherweise mehr als Sie beabsichtigt haben.

    
Brian 30.04.2009, 21:58
quelle
4

Die innere Abfrage muss lauten:

Wählen Sie oben 103000 Erstellung von ...

aus     
Andy White 30.04.2009 21:56
quelle
3

Für mich ist CTE die bessere Lösung für die geordnete Löschung

%Vor%     
AdvanTiSS 24.09.2013 14:01
quelle
2

Eine super einfache Möglichkeit, dies zu tun:

  1. Wählen Sie top 3001 aus tRealtyTrac-Reihenfolge nach Erstellung desc

  2. nimm das letzte Datum und lösche tRealtyTrac, wo creation & lt; 'thedateoufound'

Aber Andy hat auch eine gute Idee. ;)

    
NotMe 30.04.2009 21:57
quelle
1

Versuchen Sie Folgendes:

%Vor%

Sie haben die Felder in tRealtyTrac vergessen (Ich habe ein Sternchen verwendet, um alle auszuwählen, aber Sie können eine Liste von ihnen oder nur eine Liste erstellen). Sie haben auch die FROM-Klausel vergessen.

    
backslash17 30.04.2009 22:04
quelle

Tags und Links