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

  1. A kép címe Delete Duplicate Records Oracle 1. lépésben
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.
  • A kép Delete duplicate rekordok az Oracle 2. lépésben
    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.
  • A kép Delete duplicate rekordok az Oracle 3. lépésben
    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.}}
  • A fenti 3. számú vonal, és adjon hozzá egy új oszlopnevet, ha több oszlop van az asztalnál. Tegyük fel, hogy van egy korosztály, a csapat lesz a következő.

    [[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.
    Hasonló publikációk