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
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.
Krok 2. Zidentyfikuj z kolumny zatytułowanej „Nazwa”
Jeśli kolumna ma tytuł "Nazwa", musisz zastąpić " nazwa_kolumny " nazwą.
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
Krok 1. Wybierz "Nazwa z nazw"
Po „SQL” (skrót od Standard Query Language) wpisz „ wybierz nazwę z nazw”.
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”
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ę.
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
Krok 1. Wybierz RowID, który chcesz usunąć
Po "SQL" wpisz " select rowid, name from names;."
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.
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
Krok 1. Wybierz wiersz
Po "SQL" wpisz " wybierz * z nazw;" aby móc zobaczyć linię.
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.
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ę.