Podczas pracy w Oracle możesz zauważyć, że niektóre z Twoich rekordów mają duplikaty. Możesz usunąć te zduplikowane wiersze, identyfikując je i używając ich RowID lub adresu wiersza. Przed rozpoczęciem należy utworzyć tabelę kopii zapasowej na wypadek, gdyby konieczne było odwołanie się do niej po usunięciu rekordów.
Kroki
Metoda 1 z 4: Identyfikacja duplikatu
Krok 1. Zidentyfikuj duplikat
W takim przypadku zidentyfikuj przykładowy duplikat „Alan”. Upewnij się, że rekordy, które próbujesz usunąć, są faktycznie duplikatami, wprowadzając poniższy kod SQL.
Krok 2. Identyfikacja z kolumny o nazwie „Nazwy
” W wystąpieniu kolumny o nazwie „Nazwiska” należy zastąpić „nazwa_kolumny” nazwą Nazwy.
Krok 3. Identyfikacja z innych kolumn
Jeśli próbujesz zidentyfikować duplikat według innej kolumny, na przykład wiek Alana, a nie jego imię, wpisz „Wiek” w miejsce „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 pojedynczego duplikatu
Krok 1. Wybierz „nazwę z nazw
Po słowie „SQL”, co oznacza standardowy język zapytań, wpisz „wybierz nazwę z nazw”.
Krok 2. Usuń wszystkie wiersze ze zduplikowaną nazwą
Po "SQL" wpisz "usuń z nazw gdzie name='Alan';." Pamiętaj, że tutaj ważna jest wielkość liter, więc spowoduje to usunięcie wszystkich wierszy o nazwie „Alan”. Po „SQL” wpisz „zatwierdź”.
Krok 3. Wynajmij wiersz bez duplikatu
Teraz, gdy usunąłeś wszystkie wiersze z przykładową nazwą „Alan”, możesz wstawić jeden z powrotem, wpisując „wstaw do wartości nazw („Alan”);”. Po „SQL” wpisz „commit”, aby utworzyć nowy wiersz.
Krok 4. Zobacz swoją nową listę
Po wykonaniu powyższych kroków możesz sprawdzić, czy nie masz już zduplikowanych rekordów, wpisując „wybierz * z nazw”.
SQL > wybierz nazwę z nazw; NAZWA ------------------------------ Alan Carrie Tom Alan zaznaczono wiersze. SQL > usuń z nazw gdzie name='Alan'; usunięte wiersze. SQL > zatwierdź; Zatwierdzenie zakończone. SQL > wstawiaj do nazw wartości ('Alan'); utworzony wiersz. SQL > zatwierdź; Zatwierdź zakończone. SQL > wybierz * z nazw; NAZWA ------------------------------ Alan Carrie Tom zaznaczono wiersze.
Metoda 3 z 4: Usuwanie wielu duplikatów
Krok 1. Wybierz RowID, który chcesz usunąć
Po "SQL" wpisz "wybierz wiersz, nazwę z nazw;."
Krok 2. Usuń duplikat
Po „SQL” wpisz „usuń z nazw a where rowid > (wybierz min(rowid) z nazw b gdzie b.name=a.name);” aby usunąć zduplikowane rekordy.
Krok 3. Sprawdź, czy nie ma duplikatów
Po wykonaniu powyższego polecenia sprawdzają, czy nadal masz zduplikowane rekordy, wpisując „wybierz wiersz, nazwa z nazw;” a 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 > zatwierdź; Zatwierdzenie zakończone.
Metoda 4 z 4: Usuwanie wierszy z kolumnami
Krok 1. Wybierz swoje wiersze
Po "SQL" wpisz "wybierz * z nazw;" aby zobaczyć swoje wiersze.
Krok 2. Usuń zduplikowane wiersze, identyfikując ich kolumnę
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;” a następnie "commit", aby sprawdzić, czy pomyślnie usunąłeś zduplikowane rekordy.
SQL > wybierz * z nazw; NAZWA WIEK ------------------------------ ---------- Alan 50 Carrie 51 Tom 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 Carrie 51 Tom Wybrano 52 rzędy. SQL > zatwierdź; Zatwierdź zakończone.
Ostrzeżenia
-
Utwórz tabelę zapasową we własnym logowaniu, której możesz użyć, aby pokazać, co było w niej przed usunięciem (na wypadek pytań).
SQL > utwórz tabelę alan.names_backup jako wybierz * z nazw; Utworzono tabelę.