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
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.

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.

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.}}
[[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.