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: Selling FREE Pictures To Earn $1,000+ 2024, Kan
Anonim

Når du arbejder i Oracle, kan du opleve, at nogle af dine poster har dubletter. Du kan slette disse dublerede rækker ved at identificere dem og bruge dets RowID eller rækkeadresse. Inden du begynder, skal du oprette en backup -tabel, hvis du skal henvise til dem, når du har slettet poster.

Trin

Metode 1 af 4: Identificering af dit duplikat

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

Trin 1. Identificer dubletten

I dette tilfælde skal du identificere eksemplet på duplikatet "Alan". Sørg for, at de poster, du forsøger at slette, faktisk er dubletter ved at indtaste SQL nedenfor.

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

Trin 2. Identificering ud fra en kolonne med navnet "Navne

"I tilfælde af en kolonne med navnet" Navne "ville du erstatte" kolonne_navn "med navne.

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

Trin 3. Identificering fra andre kolonner

Hvis du forsøgte at identificere duplikatet ved en anden kolonne, f.eks. Alders alder frem for hans navn, ville 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: Sletning af et enkelt duplikat

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

Trin 1. Vælg "navn fra navne

"Efter" SQL ", som står for Standard forespørgselssprog, 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 duplikatnavnet

Efter "SQL" skal du indtaste "delete from names where name = 'Alan';." Bemærk, at store bogstaver er vigtige her, så dette vil slette alle de rækker, der hedder "Alan". Efter "SQL" skal du indtaste "commit".

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

Trin 3. Lej rækken uden en kopi

Nu hvor du har slettet alle rækker med eksempelnavnet "Alan", kan du indsætte en tilbage ved at indtaste "indsæt i navneværdier ('Alan');." Efter "SQL" skal du indtaste "commit" for at oprette din nye række.

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

Trin 4. Se din nye liste

Når du har gennemført ovenstående trin, kan du kontrollere, om du ikke længere har dubletter, ved at indtaste "vælg * fra navne."

SQL> vælg navn fra navne; NAVN ------------------------------ Alan Carrie Tom Alan rækker valgt. SQL> slet fra navne, hvor navn = 'Alan'; rækker slettet. SQL> begå; Forpligt dig færdig. SQL> indsæt i navne værdier ('Alan'); række oprettet. SQL> begå; Forpligt dig færdig. SQL> vælg * fra navne; NAVN ------------------------------ Alan Carrie Tom rækker valgt.

Metode 3 af 4: Sletning 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 "vælg rowid, navn fra navne;."

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

Trin 2. Slet dubletten

Efter "SQL" skal du indtaste "slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name);" at slette dublerede poster.

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

Trin 3. Kontroller for dubletter

Når du har gennemført ovenstående, kontrollerer kommandoer, om du stadig har dubletter, ved at indtaste "select rowid, name from names;" og derefter "begå".

SQL> vælg rowid, navn fra navne; ROWID NAVN ------------------ ------------------------------ 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 NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom rækker valgt. SQL> begå; Forpligt dig færdig.

Metode 4 af 4: Sletning af rækker med kolonner

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

Trin 1. Vælg dine rækker

Efter "SQL" skal du indtaste "vælg * fra navne;" for at se dine rækker.

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

Trin 2. Slet dubletter ved at identificere deres kolonne

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 slette de 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 gennemført ovenstående trin, skal du indtaste "vælg * fra navne;" og derefter "begå" for at kontrollere, at du har slettet de dublerede poster.

SQL> vælg * fra navne; NAVNALDER ------------------------------ ---------- Alan 50 Carrie 51 Tom 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; NAVNEALDER ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 rækker valgt. SQL> begå; Forpligt dig færdig.

Advarsler

  • Opret en backup-tabel i dit eget login, som du kan bruge til at vise, hvad der var der, før der blev slettet (hvis der er spørgsmål).

    SQL> opret tabel alan.names_backup som vælg * fra navne; Tabellen er oprettet.

Anbefalede: