4 moduri de a șterge înregistrările duplicate în Oracle

Cuprins:

4 moduri de a șterge înregistrările duplicate în Oracle
4 moduri de a șterge înregistrările duplicate în Oracle

Video: 4 moduri de a șterge înregistrările duplicate în Oracle

Video: 4 moduri de a șterge înregistrările duplicate în Oracle
Video: Get Microsoft Office for free 2024, Mai
Anonim

Î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

Ștergeți înregistrările duplicate în Oracle Pasul 1
Ștergeți înregistrările duplicate în Oracle Pasul 1

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.

Ștergeți înregistrările duplicate în Oracle Pasul 2
Ștergeți înregistrările duplicate în Oracle Pasul 2

Pasul 2. Identificați din coloana intitulată „Nume”

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

Ștergeți înregistrările duplicate în Oracle Pasul 3
Ștergeți înregistrările duplicate în Oracle Pasul 3

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

Ștergeți înregistrările duplicate în Oracle Pasul 4
Ștergeți înregistrările duplicate în Oracle Pasul 4

Pasul 1. Selectați „nume din nume”

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

Ștergeți înregistrările duplicate în Oracle Pasul 5
Ștergeți înregistrările duplicate în Oracle Pasul 5

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”

Ștergeți înregistrările duplicate în Oracle Pasul 6
Ștergeți înregistrările duplicate în Oracle Pasul 6

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.

Ștergeți înregistrările duplicate în Oracle Pasul 7
Ștergeți înregistrările duplicate în Oracle Pasul 7

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

Ștergeți înregistrările duplicate în Oracle Pasul 8
Ștergeți înregistrările duplicate în Oracle Pasul 8

Pasul 1. Selectați RowID pe care doriți să îl ștergeți

După „SQL”, introduceți „selectați rowid, numele din nume;”.

Ștergeți înregistrările duplicate în Oracle Pasul 9
Ștergeți înregistrările duplicate în Oracle Pasul 9

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.

Ștergeți înregistrările duplicate în Oracle Pasul 10
Ștergeți înregistrările duplicate în Oracle Pasul 10

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

Ștergeți înregistrările duplicate în Oracle Pasul 11
Ștergeți înregistrările duplicate în Oracle Pasul 11

Pasul 1. Selectați rândul

După „SQL”, introduceți „selectați * din nume;” pentru a putea vedea linia.

Ștergeți înregistrările duplicate în Oracle Pasul 12
Ștergeți înregistrările duplicate în Oracle Pasul 12

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.

Ștergeți înregistrările duplicate în Oracle Pasul 13
Ștergeți înregistrările duplicate în Oracle Pasul 13

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.

Recomandat: