4 måder at slette dublerede poster i Oracle

Indholdsfortegnelse:

4 måder at slette dublerede poster i Oracle
4 måder at slette dublerede poster i Oracle

Video: 4 måder at slette dublerede poster i Oracle

Video: 4 måder at slette dublerede poster i Oracle
Video: Заработайте $ 25,000, используя Microsoft БЕСПЛАТНО в качестве... 2024, Kan
Anonim

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

Slet dublerede poster i Oracle Trin 1
Slet dublerede poster i Oracle Trin 1

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.

Slet dublerede poster i Oracle Trin 2
Slet dublerede poster i Oracle Trin 2

Trin 2. Identificer fra kolonnen med titlen "Navn"

Hvis kolonnen har titlen "Navn", skal du erstatte "kolonnenavn" med Navn.

Slet dublerede poster i Oracle Trin 3
Slet dublerede poster i Oracle Trin 3

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

Slet dublerede poster i Oracle Trin 4
Slet dublerede poster i Oracle Trin 4

Trin 1. Vælg "navn fra navne"

Efter "SQL" (forkortelse for Standard Query Language) skal du indtaste "vælg navn fra navne".

Slet dublerede poster i Oracle Trin 5
Slet dublerede poster i Oracle Trin 5

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"

Slet dublerede poster i Oracle Trin 6
Slet dublerede poster i Oracle Trin 6

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.

Slet dublerede poster i Oracle Trin 7
Slet dublerede poster i Oracle Trin 7

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

Slet dublerede poster i Oracle Trin 8
Slet dublerede poster i Oracle Trin 8

Trin 1. Vælg det RowID, du vil slette

Efter "SQL" skal du indtaste "select rowid, name from names;."

Slet dublerede poster i Oracle Trin 9
Slet dublerede poster i Oracle Trin 9

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.

Slet dublerede poster i Oracle Trin 10
Slet dublerede poster i Oracle Trin 10

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

Slet dublerede poster i Oracle Trin 11
Slet dublerede poster i Oracle Trin 11

Trin 1. Vælg rækken

Efter "SQL" skal du indtaste "select * from names;" for at kunne se linjen.

Slet dublerede poster i Oracle Trin 12
Slet dublerede poster i Oracle Trin 12

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.

Slet dublerede poster i Oracle Trin 13
Slet dublerede poster i Oracle Trin 13

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.

Anbefalede: