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: Get Microsoft Office for free 2024, Listopad
Anonim

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ů

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

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.

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

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.

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

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ů

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“(zkratka pro Standard Query Language) zadejte „vybrat 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í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“

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

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.

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

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ů

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

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

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ů

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

Krok 1. Vyberte řádek

Za „SQL“zadejte „vyberte * z názvů;“aby bylo vidět čáru.

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

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.

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

Doporučuje: