Cum se șterge intrările repetate în oracle

Repetarea liniilor din Oracle pot fi diferențiate numai folosind "adresă de linie" (adresa liniei).

Pași

  1. Imagine intitulată Ștergerea înregistrărilor duplicate în Oracle Pasul 1
unu. Scoateți șirul folosind Rowid. Acesta este cel mai simplu mod de a elimina înregistrarea.
SQL> SELECT ROWID, NUME DE LA NUME-ROWIDNAME ------------------ ---------------------- -------- rânduri AabjnsaagaaAAAAAAAAAAAAAAAAAAAAAAAAAAAc carrieaabjnsaagaaadfoaad tom4 selectat.SQL> Ștergeți din denumiri În cazul în care RowId = „AabjnsaagaaAdFoaaa`-1 Rând șters.SQL> COMMIT-COMMIT COMPLETE.SQL> SELECT ROWID, NUME DE LA NUME-ROWIDNAME ------------------ -------------------- AabjnsaagaAAAAAAAAAAAC CarrieaabjnsaagaaAdFoaad Rânduri Tom3 selectate.
  • Image intitulat Ștergeți Duplicate Records În Oracle Pasul 2
    2. Ștergeți toate liniile repetitive, cu excepția unuia.
    SQL> SELECT NUME DE LA NUME-NAME ------------------------------ ROWS ALANCARRIETOMALAN4 SELECTAT.SQL> Șterge din denumirile de nume = „Alan`-2 rânduri șterse.SQL> COMMIT-COMMIT COMPLETE.SQL> INSERT INTO NUME VALORI ( `ALAN`) - 1 ROW CREATED.SQL> COMMIT-COMMIT COMPLETE.SQL> SELECT * de la nume-Nume ------------------------------ alancarrietomrows selectat.
  • Image cu denumirea șterge înregistrări dublură în Oracle Pasul 3
    3. Utilizați funcția MAX sau MIN pentru vîslea și șterge toate celelalte linii. În acest caz, în cazul în care există mai multe duplicate, acestea vor fi șterse.
    SQL> SELECT ROWID, NUME DE LA NUME-ROWIDNAME ------------------ ---------------------- -------- AabjnsaagaaAAAAAAAAAAAAAAAAAAAAAAAAAAAc carrieaabjansaagaaadfoaad tomaabjnsaagaaadfoaaf rânduri alan5 selectate.SQL> Ștergeți din A2Where Nume RowId> (Selectați Min (RowId) de la Nume B3where B.Nume = A.NAME4) -2 rânduri șterse.SQL> SELECT ROWID, NUME DE LA NUME-ROWIDNAME ------------------ ---------------------- -------- Aabjnsaagaaadfoaaaaaacaac carrieaabjnsaac carrieaabjnsaagaaadfoaad tom3 rânduri selectate.SQL> COMMIT-COMMIT COMPLETE.}}
  • Duplicate linia 3 de mai sus și se adaugă un nou nume de coloană, dacă aveți mai multe coloane din tabel. Să presupunem că aveți o coloană de varsta, echipa va fi următoarea.

    [[Image: Delete Duplicate Records În Oracle Pasul 4.JPG | Centru | 550px]] {{codebox | lang ="Oracle8"> SQL> Selectați * de la nume-Nameage ------------------------------ ---------- Alan50carrie51Tom52alan504 rânduri selectate.SQL> Ștergeți din A2Where Nume RowId> (Selectați Min (RowId) de la Nume B3where B.Nume = A.Name4and B.AGE = A.AGE5) -1 Rând șters.SQL> SELECT * de la nume-Nameage ------------------------------ ---------- Alan50carrie51tom52rows selectat.SQL> COMMIT-COMMIT COMPLETE.
  • Avertizări

    • Creați o copie de rezervă a tabelului pentru a compara și afișa conținutul tabelului înainte de a șterge orice (dacă aveți întrebări).
    SQL> Creați tabelul Alan.Names_Backup AS SELECT * de la nume-masă creat.
    Publicații similare