În timp ce lucrați în Oracle, puteți găsi duplicate în unele înregistrări. Puteți elimina rânduri duplicate identificându-le și folosind adresa rândului alias RowID corespunzător. Înainte de a începe, creați un tabel de rezervă în cazul în care aveți nevoie de o referință după ștergerea înregistrării.
Etapa
Metoda 1 din 4: Identificarea duplicatelor

Pasul 1. Identificați duplicatele
În acest exemplu, identificăm duplicatul „Alan”. Asigurați-vă că înregistrările care trebuie șterse sunt într-adevăr duplicate, introducând SQL-ul de mai jos.

Pasul 2. Identificați din coloana intitulată „Nume”
În cazul în care coloana are titlul „Nume”, trebuie să înlocuiți „nume_coloană” cu Nume.

Pasul 3. Identificați celelalte coloane
Dacă încercați să identificați duplicate din diferite coloane, de exemplu vârsta lui Alan în locul numelui său, introduceți „Vârstă” în locul „nume_coloană” și așa mai departe.
selectați nume_coloană, număr (nume_coloană) din grupul de tabele după nume_coloană având număr (nume_coloană)> 1;
Metoda 2 din 4: Eliminarea duplicatelor unice

Pasul 1. Selectați „nume din nume”
După „SQL” (prescurtare pentru Standard Query Language), introduceți „selectați numele din nume”.

Pasul 2. Ștergeți toate rândurile cu nume duplicat
După „SQL”, introduceți „ștergeți din nume unde name =„ Alan”;.” Trebuie remarcat faptul că capitalizarea este importantă aici, astfel încât acest pas să poată șterge toate liniile numite „Alan”. După „SQL”, introduceți „commit”

Pasul 3. Reintroduceți rândurile fără duplicate
Acum că ați șters toate rândurile și le-ați înlocuit cu „Alan”, completați unul din nou introducând „insert in name values („ Alan”);.” După „SQL”, introduceți „commit” pentru a crea o nouă linie.

Pasul 4. Vizualizați noua listă
După parcurgerea pașilor de mai sus, puteți verifica pentru a vă asigura că nu mai există înregistrări duplicate introducând „selectați * din nume”.
SQL> selectați numele din nume; NUME ------------------------------ Alan Citra Tomi Alan Baris selectat. SQL> șterge din nume unde name = 'Alan'; Linia este ștearsă. SQL> comite; / Commit finalizat. SQL> introduceți în valori valori („Alan”); rând creat. SQL> comite; Angajare finalizată. SQL> selectați * din nume; NUME ------------------------------ Alan Citra Tomi rânduri selectate.
Metoda 3 din 4: Eliminarea multiplelor duplicate

Pasul 1. Selectați RowID pe care doriți să îl ștergeți
După „SQL”, introduceți „selectați rowid, numele din nume;”.

Pasul 2. Eliminați duplicatele
După „SQL”, introduceți „ștergeți din nume a unde rowid> (selectați min (rowid) din numele b unde b.name = a.name);” pentru a elimina duplicatele.

Pasul 3. Verificați dacă există duplicate
După parcurgerea pașilor de mai sus, verificați dacă există duplicate introducând „selectați rândul, numele din nume;” apoi „comite”.
SQL> selectați rowid, nume din nume; NUME ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rânduri selectate. SQL> șterge din nume a unde rowid> (selectează min (rowid) din numele b unde b.name = a.name); rânduri șterse. SQL> selectați rowid, nume din nume; NUME ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD rânduri Tom selectate. SQL> comite; Angajare finalizată.
Metoda 4 din 4: Ștergerea rândurilor după coloane

Pasul 1. Selectați rândul
După „SQL”, introduceți „selectați * din nume;” pentru a putea vedea linia.

Pasul 2. Eliminați rândurile duplicate identificându-le coloanele
După „SQL” „introduceți„ ștergeți din nume un unde rowid> (selectați min (rowid) din nume b unde b.name = a.name și b.age = a.age); " pentru a elimina înregistrările duplicate.

Pasul 3. Verificați dacă există duplicate
După ce ați parcurs pașii de mai sus, introduceți „selectați * din nume;” apoi „comiteți” pentru a vedea dacă duplicatele au fost efectiv eliminate.
SQL> selectați * din nume; NUME VÂRSTĂ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 rânduri selectate. SQL> șterge din nume a unde rowid> (selectează min (rowid) din numele b unde b.name = a.name și b.age = a.age); rând șters. SQL> selectați * din nume; NUME VÂRSTĂ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 rânduri selectate. SQL> comite; Angajare finalizată.
Avertizare
-
Creați un tabel duplicat în datele de conectare, astfel încât să poată fi folosit ca referință de conținut atunci când nu au fost șterse date (în cazul în care aveți întrebări).
SQL> creați tabelul alan.names_backup ca selectați * din nume; Tabel creat.