4 sposoby na usunięcie zduplikowanych rekordów w Oracle

Spisu treści:

4 sposoby na usunięcie zduplikowanych rekordów w Oracle
4 sposoby na usunięcie zduplikowanych rekordów w Oracle

Wideo: 4 sposoby na usunięcie zduplikowanych rekordów w Oracle

Wideo: 4 sposoby na usunięcie zduplikowanych rekordów w Oracle
Wideo: 30 окончательных прогнозов и подсказок на 2020 год 2024, Listopad
Anonim

Podczas pracy w Oracle możesz znaleźć duplikaty na niektórych rekordach. Zduplikowane wiersze można usunąć, identyfikując je i używając odpowiedniego adresu wiersza aliasu RowID. Przed rozpoczęciem utwórz tabelę kopii zapasowej na wypadek, gdyby po usunięciu rekordu potrzebne było odwołanie.

Krok

Metoda 1 z 4: Identyfikowanie duplikatów

Usuń zduplikowane rekordy w Oracle Krok 1
Usuń zduplikowane rekordy w Oracle Krok 1

Krok 1. Zidentyfikuj duplikaty

W tym przykładzie identyfikujemy duplikat „Alan”. Upewnij się, że rekordy do usunięcia są rzeczywiście duplikatami, wprowadzając poniższy kod SQL.

Usuń zduplikowane rekordy w Oracle Krok 2
Usuń zduplikowane rekordy w Oracle Krok 2

Krok 2. Zidentyfikuj z kolumny zatytułowanej „Nazwa”

Jeśli kolumna ma tytuł "Nazwa", musisz zastąpić " nazwa_kolumny " nazwą.

Usuń zduplikowane rekordy w Oracle Krok 3
Usuń zduplikowane rekordy w Oracle Krok 3

Krok 3. Zidentyfikuj pozostałe kolumny

Jeśli próbujesz zidentyfikować duplikaty z różnych kolumn, na przykład wiek Alana zamiast jego imienia, wpisz „Wiek” zamiast „ nazwa_kolumny” i tak dalej.

wybierz nazwę_kolumny, liczba (nazwa_kolumny) z grupy tabel według nazwy_kolumny mającej liczbę (nazwa_kolumny) > 1;

Metoda 2 z 4: Usuwanie pojedynczych duplikatów

Usuń zduplikowane rekordy w Oracle Krok 4
Usuń zduplikowane rekordy w Oracle Krok 4

Krok 1. Wybierz "Nazwa z nazw"

Po „SQL” (skrót od Standard Query Language) wpisz „ wybierz nazwę z nazw”.

Usuń zduplikowane rekordy w Oracle Krok 5
Usuń zduplikowane rekordy w Oracle Krok 5

Krok 2. Usuń wszystkie wiersze ze zduplikowanymi nazwami

Po "SQL" wpisz " usuń z nazw, gdzie nazwa ='Alan';." Należy zauważyć, że duże znaczenie jest tutaj ważne, aby ten krok mógł usunąć wszystkie wiersze o nazwie „Alan”. Po „SQL” wpisz „commit”

Usuń zduplikowane rekordy w Oracle Krok 6
Usuń zduplikowane rekordy w Oracle Krok 6

Krok 3. Wprowadź ponownie wiersze bez duplikatów

Teraz, gdy usunąłeś wszystkie wiersze i zastąpiłeś je "Alanem", wypełnij jeden z powrotem, wpisując " wstaw do wartości nazw ("Alan");." Po "SQL" wpisz " commit ", aby utworzyć nową linię.

Usuń zduplikowane rekordy w Oracle Krok 7
Usuń zduplikowane rekordy w Oracle Krok 7

Krok 4. Wyświetl nową listę

Po wykonaniu powyższych kroków możesz sprawdzić, czy nie ma już zduplikowanych rekordów, wpisując „wybierz * z nazw”.

SQL > wybierz nazwę z nazw; NAZWA ------------------------------ Alan Citra Tomi Alan Baris wybrany. SQL > usuń z nazw gdzie name='Alan'; Linia zostaje usunięta. SQL > zatwierdzenia; \Zatwierdzenie zakończone. SQL > wstaw do nazw wartości('Alan'); utworzony wiersz. SQL > zatwierdzenia; Zatwierdzenie zakończone. SQL > wybierz * z nazw; NAZWA ------------------------------ Alan Citra Tomi zaznaczono wiersze.

Metoda 3 z 4: Usuwanie wielu duplikatów

Usuń zduplikowane rekordy w Oracle Krok 8
Usuń zduplikowane rekordy w Oracle Krok 8

Krok 1. Wybierz RowID, który chcesz usunąć

Po "SQL" wpisz " select rowid, name from names;."

Usuń zduplikowane rekordy w Oracle Krok 9
Usuń zduplikowane rekordy w Oracle Krok 9

Krok 2. Usuń duplikaty

Po "SQL" wpisz " usuń z nazw a gdzie rowid > (wybierz min(rowid) z nazw b gdzie b.nazwa=a.nazwa);" aby usunąć duplikaty.

Usuń zduplikowane rekordy w Oracle Krok 10
Usuń zduplikowane rekordy w Oracle Krok 10

Krok 3. Sprawdź, czy nie ma duplikatów

Po wykonaniu powyższych kroków sprawdź, czy nie ma duplikatów, wpisując „ wybierz wiersz, nazwa z nazw;” następnie „zatwierdź”.

SQL > wybierz rowid, nazwa z nazw; NAZWA ROWIDU ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan zaznaczono wiersze. SQL > usuń z nazw a gdzie rowid > (wybierz min(rowid) z nazw b gdzie b.nazwa=a.nazwa); usunięte wiersze. SQL > wybierz rowid, nazwa z nazw; NAZWA ROWIDU ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Wybrano wiersze Toma. SQL > zatwierdzenia; Zatwierdzenie zakończone.

Metoda 4 z 4: Usuwanie wierszy według kolumn

Usuń zduplikowane rekordy w Oracle Krok 11
Usuń zduplikowane rekordy w Oracle Krok 11

Krok 1. Wybierz wiersz

Po "SQL" wpisz " wybierz * z nazw;" aby móc zobaczyć linię.

Usuń zduplikowane rekordy w Oracle Krok 12
Usuń zduplikowane rekordy w Oracle Krok 12

Krok 2. Usuń zduplikowane wiersze, identyfikując ich kolumny

Po "SQL'" wpisz " usuń z nazw a where rowid > (wybierz min(rowid) z nazw b gdzie b.name=a.name i b.age=a.age);" aby usunąć zduplikowane rekordy.

Usuń zduplikowane rekordy w Oracle Krok 13
Usuń zduplikowane rekordy w Oracle Krok 13

Krok 3. Sprawdź, czy nie ma duplikatów

Po wykonaniu powyższych kroków wpisz „ wybierz * z nazw;” następnie "zatwierdź", aby sprawdzić, czy duplikaty zostały faktycznie usunięte.

SQL > wybierz * z nazw; NAZWA WIEK ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 wybrane wiersze. SQL > usuń z nazw a where rowid > (wybierz min(rowid) z nazw b gdzie b.name=a.name i b.age=a.age); wiersz usunięty. SQL > wybierz * z nazw; NAZWA WIEK ------------------------------ ---------- Alan 50 Citra 51 Tomi Wybrano 52 rzędy. SQL > zatwierdzenia; Zatwierdzenie zakończone.

Ostrzeżenie

  • Utwórz zduplikowaną tabelę w swoim loginie, aby mogła być używana jako odniesienie do treści, gdy żadne dane nie zostały usunięte (w przypadku jakichkolwiek pytań).

    SQL > utwórz tabelę alan.names_backup jako wybierz * z nazw; Utworzono tabelę.

Zalecana: