Při práci v Oracle můžete zjistit, že některé vaše záznamy mají duplikáty. Tyto duplicitní řádky můžete odstranit jejich identifikací a použitím jeho RowID nebo adresy řádku. Než začnete, měli byste vytvořit záložní tabulku pro případ, že byste na ně po odstranění záznamů potřebovali odkazovat.
Kroky
Metoda 1 ze 4: Identifikace duplikátu
Krok 1. Identifikujte duplikát
V takovém případě identifikujte příklad duplikátu „Alan“. Ujistěte se, že záznamy, které se pokoušíte odstranit, jsou ve skutečnosti duplikáty zadáním níže uvedeného SQL.
Krok 2. Identifikace ze sloupce s názvem „Jména
"V případě sloupce s názvem" Jména "byste" název_sloupce "nahradili názvy.
Krok 3. Identifikace z jiných sloupců
Pokud byste se pokoušeli identifikovat duplikát podle jiného sloupce, například podle věku Alana, nikoli podle jeho jména, zadali byste místo „název_sloupce“„Věky“a podobně.
vyberte název_sloupce, počet (název_sloupce) ze skupiny tabulek podle názvu_sloupce s počtem (název_sloupce)> 1;
Metoda 2 ze 4: Odstranění jednoho duplikátu
Krok 1. Vyberte „jméno ze jmen
"Za" SQL ", což je zkratka pro Standard Query Language, zadejte" vyberte jméno ze jmen ".
Krok 2. Odstraňte všechny řádky s duplicitním názvem
Za "SQL" zadejte "odstranit z názvů, kde name = 'Alan';." Všimněte si toho, že velká písmena jsou zde důležitá, takže tím odstraníte všechny řádky s názvem „Alan“. Za „SQL“zadejte „potvrdit“.
Krok 3. Pronajměte řádek bez duplikátu
Nyní, když jste odstranili všechny řádky s příkladným názvem „Alan“, můžete jeden vložit zpět zadáním „vložte do hodnot jmen ('Alan');. Za „SQL“zadejte „commit“a vytvořte nový řádek.
Krok 4. Podívejte se na svůj nový seznam
Jakmile dokončíte výše uvedené kroky, můžete zkontrolovat, zda již nemáte duplicitní záznamy, zadáním „vybrat * ze jmen“.
SQL> vyberte název ze jmen; NAME ------------------------------ Alan Carrie Tom Alan vybrány řádky. SQL> odstranit z názvů, kde name = 'Alan'; řádky odstraněny. SQL> potvrzení; Závazek dokončen. SQL> vložte do hodnot hodnoty ('Alan'); řádek vytvořen. SQL> potvrzení; Závazek dokončen. SQL> vyberte * z názvů; NAME ------------------------------ Alan Carrie Tom vybrány řádky.
Metoda 3 ze 4: Odstraně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. Odstranit duplikát
Za "SQL" zadejte "odstranit z názvů a kde rowid> (vyberte min (rowid) z názvů b kde b.name = a.name);" odstranit duplicitní záznamy.
Krok 3. Zkontrolujte duplikáty
Poté, co dokončíte výše uvedené, příkazy zkontrolují, zda stále máte duplicitní záznamy, zadáním „vybrat řádek, jméno ze jmen;“a poté „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 názvů a kde rowid> (vyberte min (rowid) z názvů b kde b.name = a.name); řádky odstraněny. SQL> vyberte ID řádku, název z názvů; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Vybrány Tomovy řádky. SQL> potvrzení; Závazek dokončen.
Metoda 4 ze 4: Odstranění řádků se sloupci
Krok 1. Vyberte řádky
Za „SQL“zadejte „vyberte * z názvů;“abyste viděli své řádky.
Krok 2. Odstraňte duplicitní řádky identifikací jejich sloupce
Po "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;“a poté „potvrdit“, abyste zkontrolovali, zda jste úspěšně odstranili duplicitní záznamy.
SQL> vyberte * z názvů; JMÉNO VĚK ------------------------------ ---------- Alan 50 Carrie 51 Tom 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ů; NAME AGE ------------------------------ ---------- Alan 50 Carrie 51 Tom Vybráno 52 řádků. SQL> potvrzení; Závazek dokončen.
Varování
-
Vytvořte záložní tabulku ve svém vlastním přihlášení, pomocí kterého můžete zobrazit, co tam bylo, než došlo k odstranění (v případě jakýchkoli otázek).
SQL> vytvořit tabulku alan.names_backup jako výběr * z názvů; Tabulka vytvořena.