4 způsoby, jak odstranit duplicitní záznamy v Oracle

Obsah:

4 způsoby, jak odstranit duplicitní záznamy v Oracle
4 způsoby, jak odstranit duplicitní záznamy v Oracle

Video: 4 způsoby, jak odstranit duplicitní záznamy v Oracle

Video: 4 způsoby, jak odstranit duplicitní záznamy v Oracle
Video: Jak si vytvořit vlastní logo - 3 SNADNÉ ZPŮSOBY 2024, Smět
Anonim

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

Odstranit duplicitní záznamy v Oracle Krok 1
Odstranit duplicitní záznamy v Oracle Krok 1

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.

Odstranit duplicitní záznamy v Oracle Krok 2
Odstranit duplicitní záznamy v Oracle Krok 2

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.

Odstranit duplicitní záznamy v Oracle Krok 3
Odstranit duplicitní záznamy v Oracle Krok 3

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

Odstranit duplicitní záznamy v Oracle Krok 4
Odstranit duplicitní záznamy v Oracle Krok 4

Krok 1. Vyberte „jméno ze jmen

"Za" SQL ", což je zkratka pro Standard Query Language, zadejte" vyberte jméno ze jmen ".

Odstranit duplicitní záznamy v Oracle Krok 5
Odstranit duplicitní záznamy v Oracle Krok 5

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

Odstranit duplicitní záznamy v Oracle Krok 6
Odstranit duplicitní záznamy v Oracle Krok 6

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.

Odstranit duplicitní záznamy v Oracle Krok 7
Odstranit duplicitní záznamy v Oracle Krok 7

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ů

Odstranit duplicitní záznamy v Oracle Krok 8
Odstranit duplicitní záznamy v Oracle Krok 8

Krok 1. Vyberte ID řádku, které chcete odstranit

Za "SQL" zadejte "vyberte rowid, jméno z názvů;."

Odstranit duplicitní záznamy v Oracle Krok 9
Odstranit duplicitní záznamy v Oracle Krok 9

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.

Odstranit duplicitní záznamy v Oracle Krok 10
Odstranit duplicitní záznamy v Oracle Krok 10

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

Odstranit duplicitní záznamy v Oracle Krok 11
Odstranit duplicitní záznamy v Oracle Krok 11

Krok 1. Vyberte řádky

Za „SQL“zadejte „vyberte * z názvů;“abyste viděli své řádky.

Odstranit duplicitní záznamy v Oracle Krok 12
Odstranit duplicitní záznamy v Oracle Krok 12

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.

Odstranit duplicitní záznamy v Oracle, krok 13
Odstranit duplicitní záznamy v Oracle, krok 13

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.

Doporučuje: