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: Москва слезам не верит, 1 серия (FullHD, драма, реж. Владимир Меньшов, 1979 г.) 2024, Maj
Anonim

Dok radite u Oracle -u, možete pronaći duplikate na nekim zapisima. Možete ukloniti duple redove tako što ćete ih identificirati i koristiti odgovarajuću adresu redaka zamjenskog imena RowID -a. Prije početka stvorite sigurnosnu tablicu u slučaju da vam je potrebna referenca nakon brisanja zapisa.

Korak

Metoda 1 od 4: Identifikovanje duplikata

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

Korak 1. Identificirajte duplikate

U ovom primjeru identificiramo duplikat "Alan". Uvjerite se da su zapisi za brisanje zaista duplikati unošenjem donjeg SQL -a.

Brisanje dupliciranih zapisa u Oracle -u Korak 2
Brisanje dupliciranih zapisa u Oracle -u Korak 2

Korak 2. Identifikujte iz kolone pod nazivom "Ime"

U slučaju da kolona ima naslov "Ime", morate "ime_ stupca" zamijeniti imenom.

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

Korak 3. Identificirajte ostale kolone

Ako pokušavate identificirati duplikate iz različitih stupaca, na primjer Alanova dob umjesto njegovog imena, unesite “Dob” umjesto “ime_stupca” itd.

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

Metoda 2 od 4: Uklanjanje pojedinačnih duplikata

Brisanje dupliciranih zapisa u Oracleu 4
Brisanje dupliciranih zapisa u Oracleu 4

Korak 1. Odaberite "ime iz imena"

Nakon "SQL" (skraćeno od 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 imenima

Nakon "SQL", unesite "delete from names where name = 'Alan';." Treba napomenuti da je velika slova ovdje važna kako bi se ovim korakom izbrisali 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. Ponovo unesite redove bez duplikata

Sada kada ste izbrisali sve redove i zamijenili ih s "Alan", ponovo ih ispunite unošenjem "umetni u vrijednosti imena ('Alan');." Nakon "SQL", unesite "commit" za kreiranje nove linije.

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

Korak 4. Pogledajte novu listu

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

SQL> odaberite ime iz imena; IME ------------------------------ Alan Citra Tomi Alan Baris izabran. SQL> obriši iz imena gdje je name = 'Alan'; Linija je izbrisana. SQL> urezuje; / Uređivanje dovršeno. SQL> umetni u imena vrijednosti ('Alan'); red kreiran. SQL> urezuje; Urezivanje je dovršeno. SQL> odaberite * iz imena; IME ------------------------------ Alan Citra Tomi redovi odabrani.

Metoda 3 od 4: Uklanjanje 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. Uklonite duplikate

Nakon "SQL", unesite "delete from names a where rowid> (odaberite min (rowid) iz imena b gdje je b.name = a.name);" za uklanjanje duplikata.

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

Korak 3. Provjerite ima li duplikata

Nakon što dovršite gore navedene korake, provjerite ima li duplikata unošenjem "select rowid, name from names;" zatim "izvršiti".

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> urezuje; Urezivanje je dovršeno.

Metoda 4 od 4: Brisanje redova po kolonama

Izbrišite duple zapise u Oracleu 11
Izbrišite duple zapise u Oracleu 11

Korak 1. Odaberite red

Nakon "SQL", unesite "select * from names;" da biste mogli vidjeti liniju.

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

Korak 2. Uklonite duple redove identificiranjem njihovih stupaca

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 uklanjanje dupliranih 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;" zatim "urežite" da vidite da li su duplikati zaista uklonjeni.

SQL> odaberite * iz imena; IME DOBA ------------------------------ ---------- Alan 50 Citra 51 Tomi 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 Citra 51 Tomi Odabrana su 52 reda. SQL> urezuje; Urezivanje je dovršeno.

Upozorenje

  • Napravite duplikat tablice u prijavi tako da se može koristiti kao referenca sadržaja kada podaci nisu izbrisani (u slučaju da imate pitanja).

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

Preporučuje se: