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

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

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