Při práci v Oracle můžete u některých záznamů najít duplikáty. Duplicitní řádky můžete odebrat tak, že je identifikujete a použijete odpovídající adresu řádku aliasu RowID. Před spuštěním vytvořte záložní tabulku pro případ, že po odstranění záznamu budete potřebovat odkaz.
Krok
Metoda 1 ze 4: Identifikace duplikátů
Krok 1. Identifikujte duplikáty
V tomto případě identifikujeme duplikát „Alan“. Ujistěte se, že záznamy, které mají být odstraněny, jsou skutečně duplikáty zadáním níže uvedeného SQL.
Krok 2. Identifikujte ze sloupce s názvem „Název“
V případě, že sloupec má název „Jméno“, musíte „název_sloupce“nahradit názvem.
Krok 3. Identifikujte ostatní sloupce
Pokud se pokoušíte identifikovat duplikáty z různých sloupců, například věk Alana místo jeho jména, zadejte místo „název_sloupce“„Věk“atd.
vyberte název_sloupce, počet (název_sloupce) ze skupiny tabulek název_sloupce s počtem (název_sloupce)> 1;
Metoda 2 ze 4: Odebrání jednotlivých duplikátů
Krok 1. Vyberte „jméno ze jmen“
Za „SQL“(zkratka pro Standard Query Language) zadejte „vybrat jméno ze jmen“.
Krok 2. Odstraňte všechny řádky s duplicitními názvy
Za "SQL" zadejte "odstranit z názvů, kde name = 'Alan';." Je třeba poznamenat, že velká písmena jsou zde důležitá, aby tento krok mohl odstranit všechny řádky s názvem „Alan“. Za „SQL“zadejte „potvrdit“
Krok 3. Znovu zadejte řádky bez duplikátů
Nyní, když jste odstranili všechny řádky a nahradili je „Alan“, vyplňte jeden zpět zadáním „vložte do hodnot jmen ('Alan');. Za „SQL“zadejte „commit“a vytvořte nový řádek.
Krok 4. Zobrazte nový seznam
Po provedení výše uvedených kroků můžete zkontrolovat, zda již neexistují žádné duplicitní záznamy, zadáním „vybrat * ze jmen“.
SQL> vyberte název ze jmen; NAME ------------------------------ Alan Citra Tomi Alan Baris vybrán. SQL> odstranit z názvů, kde name = 'Alan'; Řádek je odstraněn. SQL> potvrdí; / Závazek dokončen. SQL> vložte do hodnot hodnoty ('Alan'); řádek vytvořen. SQL> potvrdí; Závazek dokončen. SQL> vyberte * z názvů; NAME ------------------------------ Vybrány řádky Alan Citra Tomi.
Metoda 3 ze 4: Odebrání více duplikátů
Krok 1. Vyberte ID řádku, které chcete odstranit
Za "SQL" zadejte "vyberte rowid, jméno z názvů;."
Krok 2. Odeberte duplikáty
Za „SQL“zadejte „odstranit z názvů a kde rowid> (vyberte min (rowid) z názvů b, kde b.name = a.name);“odstranit duplikáty.
Krok 3. Zkontrolujte duplikáty
Po dokončení výše uvedených kroků vyhledejte duplikáty zadáním „vybrat řádek, jméno ze jmen;“pak „zavázat“.
SQL> vyberte ID řádku, název z názvů; ROWID NAME ------------------ ------------------------------ Vybrány řádky AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan. SQL> odstranit z jmen a kde rowid> (vyberte min (rowid) z názvů b kde b.name = a.name); řádky odstraněny. SQL> vyberte rowid, název z názvů; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom vybrány řádky. SQL> potvrdí; Závazek dokončen.
Metoda 4 ze 4: Odstranění řádků podle sloupců
Krok 1. Vyberte řádek
Za „SQL“zadejte „vyberte * z názvů;“aby bylo vidět čáru.
Krok 2. Odstraňte duplicitní řádky identifikací jejich sloupců
Za „SQL“zadejte „odstranit z názvů a kde rowid> (vyberte min (rowid) z názvů b, kde b.name = a.name a b.age = a.age);“odstranit duplicitní záznamy.
Krok 3. Zkontrolujte duplikáty
Jakmile dokončíte výše uvedené kroky, zadejte „vybrat * ze jmen;“poté „potvrďte“, abyste zjistili, zda byly duplikáty skutečně odstraněny.
SQL> vyberte * z názvů; JMÉNO VĚK ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 vybrané řádky. SQL> odstranit ze jmen a kde rowid> (vyberte min (rowid) z názvů b kde b.name = a.name a b.age = a.age); řádek odstraněn. SQL> vyberte * z názvů; JMÉNO VĚK ------------------------------ ---------- Alan 50 Citra 51 Tomi Vybráno 52 řádků. SQL> potvrdí; Závazek dokončen.
Varování
-
Vytvořte ve svém přihlášení duplicitní tabulku, aby ji bylo možné použít jako referenci obsahu, pokud nebyla odstraněna žádná data (v případě jakýchkoli dotazů).
SQL> vytvořit tabulku alan.names_backup jako výběr * z názvů; Tabulka vytvořena.