4 načina za brisanje dupliciranih zapisa u Oracleu

Sadržaj:

4 načina za brisanje dupliciranih zapisa u Oracleu
4 načina za brisanje dupliciranih zapisa u Oracleu

Video: 4 načina za brisanje dupliciranih zapisa u Oracleu

Video: 4 načina za brisanje dupliciranih zapisa u Oracleu
Video: Как заменить треснувшую плитку и удалить эпоксидную затирку? 2024, Maj
Anonim

Kada radite u Oracle -u, možda ćete otkriti da neki od vaših zapisa imaju duplikate. Možete izbrisati ove duple redove tako što ćete ih identificirati i upotrijebiti njegov RowID ili adresu reda. Prije nego započnete, trebali biste stvoriti sigurnosnu tablicu u slučaju da ih trebate referencirati nakon što ste izbrisali zapise.

Koraci

Metoda 1 od 4: Identificiranje vašeg duplikata

Brisanje dupliciranih zapisa u Oracle -u Korak 1
Brisanje dupliciranih zapisa u Oracle -u Korak 1

Korak 1. Identificirajte duplikat

U ovom slučaju identificirajte primjer duplikata, "Alan". Uvjerite se da su zapisi koje pokušavate izbrisati duplikati tako da unesete donji SQL.

Izbrišite duple zapise u Oracle -u 2. korak
Izbrišite duple zapise u Oracle -u 2. korak

Korak 2. Identifikovanje iz kolone pod nazivom "Imena

"U primjerku stupca pod nazivom" Names ", zamijenili biste" column_name "s Names.

Brisanje dupliciranih zapisa u Oracleu 3
Brisanje dupliciranih zapisa u Oracleu 3

Korak 3. Identifikovanje iz drugih kolona

Ako pokušavate identificirati duplikat pomoću druge kolone, na primjer dobi Alana, a ne njegovog imena, unijeli biste "dob" na mjesto "ime_stupca" itd.

odaberite ime_stupca, broj (ime_ stupca) iz grupe tablica prema imenu stupca s brojem (ime_stupca)> 1;

Metoda 2 od 4: Brisanje jednog duplikata

Brisanje dupliciranih zapisa u Oracle -u Korak 4
Brisanje dupliciranih zapisa u Oracle -u Korak 4

Korak 1. Odaberite "ime iz imena

"Nakon" SQL ", što znači Standard Query Language, unesite" select name from names ".

Izbrišite duple zapise u Oracleu 5
Izbrišite duple zapise u Oracleu 5

Korak 2. Izbrišite sve redove sa dupliciranim imenom

Nakon "SQL", unesite "delete iz imena gdje je name = 'Alan';." Imajte na umu da su velika slova ovdje važna, pa će se tako izbrisati svi redovi pod nazivom "Alan". Nakon "SQL" unesite "commit".

Brisanje dupliciranih zapisa u Oracle -u Korak 6
Brisanje dupliciranih zapisa u Oracle -u Korak 6

Korak 3. Unesite red bez duplikata

Sada kada ste izbrisali sve redove s primjerom imena "Alan", možete ga umetnuti natrag unošenjem "umetni u vrijednosti imena ('Alan');." Nakon "SQL", unesite "commit" da kreirate svoj novi red.

Izbrišite duple zapise u Oracleu 7
Izbrišite duple zapise u Oracleu 7

Korak 4. Pogledajte svoju novu listu

Nakon što dovršite gore navedene korake, možete provjeriti da li više nemate duplikate zapisa unosom "odaberi * iz imena".

SQL> odaberite ime iz imena; IME ------------------------------ Alan Carrie Tom Alan redovi odabrani. SQL> izbriši iz imena gdje je name = 'Alan'; redovi izbrisani. SQL> urezivanje; Urezivanje je dovršeno. SQL> umetni u imena vrijednosti ('Alan'); red kreiran. SQL> urezivanje; Urezivanje je dovršeno. SQL> odaberite * iz imena; IME ------------------------------ Alan Carrie Tom odabrani redovi.

Metoda 3 od 4: Brisanje više duplikata

Izbrišite duple zapise u Oracleu 8
Izbrišite duple zapise u Oracleu 8

Korak 1. Odaberite RoWID koji želite izbrisati

Nakon "SQL", unesite "select rowid, name from names;."

Izbrišite duple zapise u Oracleu 9
Izbrišite duple zapise u Oracleu 9

Korak 2. Izbrišite duplikat

Nakon "SQL -a", unesite "obriši iz imena a gdje rowid> (odaberite min (red -red) iz imena b gdje je b.name = a.name);" za brisanje dupliciranih zapisa.

Brisanje dupliciranih zapisa u Oracle -u, korak 10
Brisanje dupliciranih zapisa u Oracle -u, korak 10

Korak 3. Provjerite ima li duplikata

Nakon što ste dovršili gore navedeno, naredbe provjeravaju da li još uvijek imate duplikate zapisa unosom "select rowid, name from names;" a zatim "predati".

SQL> odaberite rowid, ime iz imena; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan redovi odabrani. SQL> izbriši iz imena a where rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name); redovi izbrisani. SQL> odaberite rowid, ime iz imena; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom redovi odabrani. SQL> urezivanje; Urezivanje je dovršeno.

Metoda 4 od 4: Brisanje redova sa kolonama

Brisanje dupliciranih zapisa u Oracle -u 11. korak
Brisanje dupliciranih zapisa u Oracle -u 11. korak

Korak 1. Odaberite redove

Nakon "SQL", unesite "odaberite * iz imena;" da vidim vaše redove.

Brisanje dupliciranih zapisa u Oracle -u, korak 12
Brisanje dupliciranih zapisa u Oracle -u, korak 12

Korak 2. Izbrišite duple redove identificiranjem njihove kolone

Nakon "SQL" "unesite" izbrišite iz imena a where rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name i b.age = a.age); " za brisanje duplikata zapisa.

Brisanje dupliciranih zapisa u Oracle -u, korak 13
Brisanje dupliciranih zapisa u Oracle -u, korak 13

Korak 3. Provjerite ima li duplikata

Nakon što dovršite gore navedene korake, unesite "select * from names;" a zatim "urezivanje" kako biste provjerili jeste li uspješno izbrisali duplikate zapisa.

SQL> odaberite * iz imena; IME DOBA ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 redovi odabrani. SQL> izbriši iz imena a where rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name i b.age = a.age); red izbrisan. SQL> odaberite * iz imena; IME DOBA ------------------------------ ---------- Alan 50 Carrie 51 Tom Odabrana su 52 reda. SQL> urezivanje; Urezivanje je dovršeno.

Upozorenja

  • Napravite rezervnu tablicu za vlastitu prijavu koju možete koristiti za prikaz onoga što je bilo prije brisanja (u slučaju da imate pitanja).

    SQL> kreirajte tablicu alan.names_backup kao odaberite * iz imena; Tablica je kreirana.

Preporučuje se: