Mens du arbejder i Oracle, kan du finde dubletter på nogle poster. Du kan fjerne dublerede rækker ved at identificere dem og bruge den tilsvarende RowID -alias -rækkeadresse. Inden du starter, skal du oprette en backup -tabel, hvis du har brug for en reference, efter at posten er slettet.
Trin
Metode 1 af 4: Identificering af dubletter
Trin 1. Identificer dubletter
I dette eksempel identificerer vi duplikatet "Alan". Sørg for, at de poster, der skal slettes, faktisk er dubletter ved at indtaste SQL nedenfor.
Trin 2. Identificer fra kolonnen med titlen "Navn"
Hvis kolonnen har titlen "Navn", skal du erstatte "kolonnenavn" med Navn.
Trin 3. Identificer de andre kolonner
Hvis du forsøger at identificere dubletter fra forskellige kolonner, f.eks. Alans alder i stedet for hans navn, skal du indtaste “Alder” i stedet for “column_name” og så videre.
vælg column_name, count (column_name) fra tabelgruppe efter column_name med count (column_name)> 1;
Metode 2 af 4: Fjernelse af enkelt dubletter
Trin 1. Vælg "navn fra navne"
Efter "SQL" (forkortelse for Standard Query Language) skal du indtaste "vælg navn fra navne".
Trin 2. Slet alle rækker med dublerede navne
Efter "SQL" skal du indtaste "delete from names where name = 'Alan';." Det skal bemærkes, at store bogstaver er vigtige her, så dette trin kan slette alle linjerne med navnet "Alan". Efter "SQL" skal du indtaste "commit"
Trin 3. Indtast rækker igen uden dubletter
Nu hvor du har slettet alle rækker og erstattet dem med "Alan", skal du udfylde en igen ved at indtaste "indsæt i navneværdier ('Alan');." Efter "SQL" skal du indtaste "commit" for at oprette en ny linje.
Trin 4. Se den nye liste
Efter at have udført ovenstående trin kan du kontrollere, om der ikke er flere dubletter ved at indtaste "vælg * fra navne".
SQL> vælg navn fra navne; NAVN ------------------------------ Alan Citra Tomi Alan Baris valgt. SQL> slet fra navne, hvor navn = 'Alan'; Linjen slettes. SQL> forpligter; / Commit fuldført. SQL> indsæt i navne værdier ('Alan'); række oprettet. SQL> forpligter; Forpligt dig færdig. SQL> vælg * fra navne; NAVN ------------------------------ Alan Citra Tomi rækker valgt.
Metode 3 af 4: Fjernelse af flere dubletter
Trin 1. Vælg det RowID, du vil slette
Efter "SQL" skal du indtaste "select rowid, name from names;."
Trin 2. Fjern dubletter
Efter "SQL" skal du indtaste "delete from names a where rowid> (select min (rowid) from names b where b.name = a.name);" at fjerne dubletter.
Trin 3. Kontroller for dubletter
Efter at have gennemført ovenstående trin skal du kontrollere, om der er dubletter ved at indtaste "select rowid, name from names;" derefter "begå".
SQL> vælg rowid, navn fra navne; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rækker valgt. SQL> slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name); rækker slettet. SQL> vælg rowid, navn fra navne; ROWID NAVN ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom rækker valgt. SQL> forpligter; Forpligt dig færdig.
Metode 4 af 4: Sletning af rækker efter kolonner
Trin 1. Vælg rækken
Efter "SQL" skal du indtaste "select * from names;" for at kunne se linjen.
Trin 2. Fjern dublerede rækker ved at identificere deres kolonner
Efter "SQL" indtast "slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name og b.age = a.age);" for at fjerne dublerede poster.
Trin 3. Kontroller for dubletter
Når du har udført ovenstående trin, skal du indtaste "vælg * fra navne;" derefter "forpligte" sig til at se, om dubletterne faktisk er blevet fjernet.
SQL> vælg * fra navne; NAVNALDER ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 markerede rækker. SQL> slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name og b.age = a.age); række slettet. SQL> vælg * fra navne; NAME AGE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 rækker valgt. SQL> forpligter; Forpligt dig færdig.
Advarsel
-
Opret en dublettabel i dit login, så den kan bruges som indholdsreference, når ingen data er blevet slettet (hvis du har spørgsmål).
SQL> opret tabel alan.names_backup som vælg * fra navne; Tabellen er oprettet.