Hogyan lehet törölni az ismétlődő bejegyzéseket az oracle-ben
Az Oracle-ban lévő ismétlődő vonalak csak "ROWID" (vonalcím) segítségével differenciálódhatnak.
Lépések
egy. Távolítsa el a karakterláncot a Rowid segítségével. Ez a legegyszerűbb módja a rekord eltávolításának.
SQL> Válassza ki a ROWID, NAME NAME-ROWIDNAME ------------------ ---------------------- -------- AabjnsaagaaAAAAAAAAAAAAAAAAAAAAAAAAAAAc carrieaabjnsaagaaadfoaad tom4 sor kiválasztva.SQL> Törlés a nevekről, ahol a ROWID = `AABJNSAAGAADFOAAA`-1 sor törölve.SQL> kötelezettségvállalás befejezése.SQL> SELECT ROWID, NAME NAME-ROWIDNAME ------------------ -------------------- Aabjnsaagaaaaaaaaaaac currieaabjnsagaaadfoaad Tom3 sorok kiválasztva.

2. Törölje az összes ismétlődő vonalat, kivéve az egyiket.
SQL> Válassza ki a nevet a NAME-NAME ------------------------------ ALANCARRIETOMALAN4 SORS kiválasztva.SQL> Törlés a nevekről, ahol a név = `Alan`-2 sorok törölve.SQL> kötelezettségvállalás befejezése.SQL> Helyezze be a neveket ("Alan") - 1 sor létrehozva.SQL> kötelezettségvállalás befejezése.SQL> Válassza ki a * NAME-NAME ------------------------------ ALANCARARARIONOMROWS KIVÁLASZTOTT.

3. Használja a MAX vagy MIN funkciót, hogy elutasítsa és törölje az összes többi vonalat. Ebben az esetben, ha több duplikátum van, akkor törlik őket.
SQL> Válassza ki a ROWID, NAME NAME-ROWIDNAME ------------------ ---------------------- -------- AabjnsaagaaAAAAAAAAAAAAAAAAAAAAAAAAAAAc carrieaabjansaagaaadfoaad tomaabjnsaagaaadfoaaf alan5 sor kiválasztva.SQL> Törlés a nevekről A2Where Rowid> (Válassza a Min (Rowid) a B3where B-tól B.NAME = A.NAME4) -2 sorok törölve.SQL> Válassza ki a ROWID, NAME NAME-ROWIDNAME ------------------ ---------------------- -------- AabjnsaagaaadfoaaaaaaacaaAABJNSAAACAABJNSAAABJNSAACAADFOAAD TOM3 sorok kiválasztva.SQL> kötelezettségvállalás befejezése.}}
[[Kép: Delete duplikált rekordok az Oracle 4. lépésben.JPG | Center | 550px]] {{codebox | lang ="Oracle8"> SQL> Válassza ki a * NAME-NAME-NAMEAGE ------------------------------ ---------- ALAN50CARRIE51TOM52ALAN504 Választott sorok.SQL> Törlés a nevekről A2Where Rowid> (Válassza a Min (Rowid) a B3where B-tól B.NAME = A.NAME4 ÉS B.Kor = A.AGE5) -1 sor törölve.SQL> Válassza ki a * NAME-NAMEAGE-tól ------------------------------ ---------- ALAN50CARRIE51TOM52ROWS Kiválasztott.SQL> kötelezettségvállalás befejezése.
Figyelmeztetések
- Hozzon létre egy biztonsági mentést a táblázat összehasonlításához és megjelenítéséhez az asztal tartalmának, mielőtt bármit törölne (ha bármilyen kérdése van).
SQL> Táblázat létrehozása Alan.NAMES_BACKUP AS kiválasztása * A létrehozott nevekről.