Entfernen sie doppelte daten in oracle

Wenn Sie in Oracle arbeiten, werden einige Ihrer Daten möglicherweise mehrmals angezeigt. Sie können diese Duplikate entfernen, indem Sie sie identifizieren und ihre Zeilenadresse verwenden. Bevor Sie beginnen, erstellen Sie eine Kopie der Tabelle, falls Sie nach dem Löschen der Daten darauf zurückgreifen müssen.

Schritte

Methode 1 von 4: Duplikate erkennen

Bildtitel Delete Duplicate Records in Oracle Step 1
1. Identifizieren Sie das Duplikat. Identifizieren Sie in diesem Fall das Beispielduplikat "Alan". Stellen Sie sicher, dass die Datensätze, die Sie löschen möchten, tatsächlich Duplikate sind, indem Sie den folgenden SQL-Befehl eingeben.
Bildtitel Delete Duplicate Records in Oracle Step 2
2. Suche in einer Spalte `Namen`. Bei einer Spalte `Namen` füllen Sie diese für `column_name` aus.
Bildtitel Delete Duplicate Records in Oracle Step 3
3. In anderen Spalten suchen. Wenn Sie versuchen, Duplikate in einer anderen Spalte zu finden, z. B. Alans Alter anstelle seines Namens, können Sie `Alter` für `Spaltenname` usw. eingeben.
select column_name, count(column_name) aus der Tabellengruppe nach column_name mit count (column_name) > 1;

Methode2 von 4:Ein einzelnes Duplikat löschen

Bildtitel Delete Duplicate Records in Oracle Step 4
1. Wählen Sie `Namen aus Namen`. Geben Sie nach `SQL` (Standard Query Language) `Namen aus Namen auswählen` ein.
Bildtitel Delete Duplicate Records in Oracle Step 5
2. Löschen Sie alle Zeilen mit dem doppelten Namen. Nach `SQL` tippe `delete from names where name=`Alan`;`. Beachten Sie, dass hier die Groß-/Kleinschreibung wichtig ist. Dadurch werden alle Zeilen mit dem Namen "Alan" entfernt. Geben Sie `commit` nach `SQL` ein.
Bildtitel Delete Duplicate Records in Oracle Step 6
3. Geben Sie die Zeile ohne Duplikat erneut ein. Nachdem Sie nun alle Zeilen mit dem Beispielnamen `Alan` gelöscht haben, können Sie eine wieder einfügen, indem Sie `in Namenswerte einfügen (`Alan`) eingeben;.` Geben Sie nach `SQL` `commit` ein, um die neue Zeile zu erstellen.
Bildtitel Delete Duplicate Records in Oracle Step 7
4. Schau dir deine neue Liste an. Nachdem Sie die obigen Schritte ausgeführt haben, können Sie mit dem Befehl "select *from names" überprüfen, ob Sie keine doppelten Daten haben.
SQL > Name aus Namen auswählen; NAME ------------------------------ Alan Carrie Tom Alan Zeilen ausgewählt. SQL > aus Namen löschen wo name=`Alan`; Zeilen gelöscht. SQL > verpflichten; Commit abgeschlossen. SQL > in Namen einfügen Werte(`Alan`); Zeile erstellt. SQL > verpflichten; Commit abgeschlossen. SQL > *aus Namen auswählen; NAME -------------------------- Alan Carrie Tom Zeilen ausgewählt.

Methode 3 von 4: Entfernen Sie mehrere Duplikate

Bildtitel Delete Duplicate Records in Oracle Step 8
1. Wählen Sie die Zeilenadresse (Zeilen-ID) aus, die Sie löschen möchten. Geben Sie nach `SQL` ein `select rowid, name from names;`.
Bildtitel Delete Duplicate Records in Oracle Step 9
2. Löschen Sie das Duplikat. Geben Sie nach `SQL` `Delete from names a where rowid . ein > (wähle min(rowid) aus den Namen b wobei b.name=a.Name);` um Duplikate von Daten zu entfernen.
Bildtitel Delete Duplicate Records in Oracle Step 10
3. Auf Duplikate prüfen. Nachdem Sie die obigen Schritte ausgeführt haben, überprüfen Sie, ob Sie immer noch doppelte Daten haben, indem Sie "select rowid, name from names;" eingeben. und dann "verpflichten".
SQL > wähle Rowid,Name aus Namen; ROWIDNAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan Zeilen ausgewählt. SQL > lösche aus den Namen a where rowid > (wähle min(rowid) aus den Namen b wobei b.name=a.Name ); Zeilen gelöscht. SQL > wähle Rowid,Name aus Namen; ROWIDNAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom-Reihen ausgewählt. SQL > verpflichten; Commit abgeschlossen.

Methode 4 von 4: Spaltenzeilen löschen

Bildtitel Delete Duplicate Records in Oracle Step 11
1. Wählen Sie die Zeilen aus. Geben Sie nach `SQL` `select *from names;` um die ausgewählten Zeilen zu sehen.
Bildtitel Delete Duplicate Records in Oracle Step 12
2. Entfernen Sie doppelte Zeilen, indem Sie ihre Spalte identifizieren. Geben Sie nach `SQL` `Delete from names a where rowid . ein > (wähle min(rowid) aus den Namen b wobei b.name=a.name und b.Alter=a.das Alter);` um die doppelten Daten zu entfernen.
Bildtitel Delete Duplicate Records in Oracle Step 13
3. Auf Duplikate prüfen. Nachdem Sie die obigen Schritte ausgeführt haben, geben Sie `select *from names;` und dann `Bestätigen`, um zu überprüfen, ob Sie alle doppelten Daten erfolgreich entfernt haben.
SQL > *aus Namen auswählen; NAME --------------------------------- ---------- Alan50 Carrie51 Tom52 Alan50 Zeilen ausgewählt. SQL > lösche aus den Namen a where rowid > (wähle min(rowid) aus den Namen b wobei b.name=a.name und b.Alter=a.das Alter ); Zeile gelöscht. SQL > *aus Namen auswählen; NAMEAGE --------------------------------- ---------- Alan50 Carrie51 Tom52 Zeilen ausgewählt. SQL > verpflichten; Commit abgeschlossen.

Warnungen

  • Erstellen Sie ein Backup der Tabelle unter Ihrem eigenen Login, mit dem Sie die Situation vor dem Löschen anzeigen können (falls Fragen gestellt werden).
SQL > Tabelle erstellen Alan.names_backup as select *from names; Tabelle erstellt.

Оцените, пожалуйста статью