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
Korak 1. Identificirajte duplikate
U ovom primjeru identificiramo duplikat "Alan". Uvjerite se da su zapisi za brisanje zaista duplikati unošenjem donjeg SQL -a.
Korak 2. Identifikujte iz kolone pod nazivom "Ime"
U slučaju da kolona ima naslov "Ime", morate "ime_ stupca" zamijeniti imenom.
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
Korak 1. Odaberite "ime iz imena"
Nakon "SQL" (skraćeno od Standard Query Language), unesite "select name from names".
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"
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.
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
Korak 1. Odaberite RowID koji želite izbrisati
Nakon "SQL" unesite "select rowid, name from names;."
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.
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
Korak 1. Odaberite red
Nakon "SQL", unesite "select * from names;" da biste mogli vidjeti liniju.
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.
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.