2016-11-24 6 views
0

Ich habe eine Replikation von rund 200 Datensätze in einer Tabelle, ich möchte alle dann außer einem entfernen, wie kann ich das tun?löschen doppelte Datensätze außer einem

+1

einen Blick auf diese haben http://stackoverflow.com/questions/59232/how-do-i-find-duplicate-values- In-einem-Tabelle-in-Orakel. Wenn dies der Fall ist, schließen Sie bitte diesen Thread. – Viki888

+0

@ viki888, ich frage nach Löschung, um keine Duplikate zu finden :) – KeenLearner

+0

DELETE FROM Tabelle WHERE (... Ihre Select-Abfrage mit Limit 199 ...) – dgk

Antwort

0

Quelle http://www.devx.com

Es ist einfach durch läuft eine Datenlast zweimal ohne Primärschlüssel oder eindeutige Indizes doppelte Zeilen von Daten in Oracle-Tabellen einzuführen erstellt oder enabled.Here column1, column2, column3 bilden die Identifizierungsschlüssel für jeden Datensatz.

DELETE FROM our_table 
WHERE rowid not in 
(SELECT MIN(rowid) 
FROM our_table 
GROUP BY column1, column2, column3) ; 
-3

die folgende Abfrage verwenden. Dies gilt, wenn eine ID für die Tabelle verfügbar ist.

von tableA löschen where id in (oben 199 ID von tableA wählen)

Verwandte Themen