Jak odstranit opakování položky v oracle

Opakující se řádky v Oracle mohou být rozlišeny pouze s použitím jejich ‚rowID‘ (řádek adresy).

Kroky

  1. Obrázek s názvem odstranit duplicitní záznamy v databázi Oracle kroku 1
jeden. Odstraňte řetězec pomocí rowid. To je nejjednodušší způsob, jak odstranit záznam.
SQL> SELECT ROWID, NAME od jmén-ROWIDNAME ------------------ ---------------------- -------- AabjnsaagaaAAAAAAAAAAAAAAAAAAAAAAAAAAAc carrieaabjnsaagaaadfoaad tom4 řádky vybrány.SQL> Odstranit z názvů, u kterých rowID = ‚AabjnsaagaaAdFoaaa`-1 Row Deleted.SQL> Kompletní spáchání.SQL> Vyberte RowID, jméno ze jmen Vybrané řádky Tom3.
  • Obrázek s názvem Odstranit duplicitní záznamy v Oracle Krok 2
    2. Smazat všechny opakované řádky kromě jednoho.
    SQL> Vyberte název ze jména-name ------------------------------------------------------------------------------------ alancarrietomalan4 řádky vybrané.SQL> Odstranit z názvů, kde název = `Alan`-2 řádky vypouští se.SQL> Kompletní spáchání.SQL> Vložení hodnot názvů ("Alan `) - 1 řádek vytvořen.SQL> Kompletní spáchání.SQL> Select * Z názvu jména --------------------------------------------------------------- alancarrietomrows vybraný.
  • Obrázek s názvem Odstranit duplicitní záznamy v Oracle Krok 3
    3. Použijte funkci max nebo min pro řádku a odstranění všech ostatních řádků. V tomto případě, pokud existuje několik duplikátů, budou vymazány.
    SQL> Vyberte Rowid, jméno z jmen-Rowidname --------------------------------------------------- --------- AABJNSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD TOMAAABJNSAAGAAAADFOAAF ALAN5 Řádky vybrané.SQL> Odstranit z jmen A2where Rowid> (Vyberte MIN (Rowid) z jmen B3where B.Jméno = A.Jméno4) -2 řádky smazané.SQL> Vyberte Rowid, jméno z jmen-Rowidname --------------------------------------------------- --------- AABJNSAAGAAAAAAAAAAAAACAACAACAACAACAACAACAACAACAACAAGAAAAAAAAAAADY Zvolené řádky Tom3.SQL> Kompletní spáchání.}}
  • Duplicitní řádek 3 výše a přidejte nový název sloupce, pokud máte několik sloupců v tabulce. Předpokládejme, že máte sloupec věků, bude tým další.

    [[Image: Smazat duplicitní záznamy v Oracle Krok 4.JPG | Center | 550Px]] {{CodeBox | Lang = "Oracle8"> SQL> Select * Z názvů-jmenge ----------------------------------- ----- ALAN50CARRIE51TOM52ALAN504 Vybrané řádky.SQL> Odstranit z jmen A2where Rowid> (Vyberte MIN (Rowid) z jmen B3where B.Jméno = A.Jméno4and B.Věk = A.Age5) -1 řádek smazán.SQL> Vyberte * Z názvů-jmenge ----------------------------------------------------- Alan50Carrie51Tom52Rows vybraný.SQL> Kompletní spáchání.
  • Varování

    • Vytvořit zálohu tabulky pro porovnání a zobrazení obsahu tabulky před odstraněním cokoliv (pokud máte nějaké dotazy).
    SQL> Vytvořit stůl Alan.Name_backup jako zvolte * z vytvořené názvy.
    Podobné publikace