











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

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.

2. Suche in einer Spalte `Namen`. Bei einer Spalte `Namen` füllen Sie diese für `column_name` aus.

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

1. Wählen Sie `Namen aus Namen`. Geben Sie nach `SQL` (Standard Query Language) `Namen aus Namen auswählen` ein.

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.

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.

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

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;`.

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.

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

1. Wählen Sie die Zeilen aus. Geben Sie nach `SQL` `select *from names;` um die ausgewählten Zeilen zu sehen.

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.

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.
Оцените, пожалуйста статью