Jak usunąć powtarzające się wpisy w oracle

Powtarzające się linie w Oracle można zróżnicować tylko za pomocą ich "ROWID" (adres linii).

Kroki

  1. Obraz zatytułowany Usuń duplikaty rekordy w Oracle Krok 1
jeden. Usuń ciąg za pomocą ROWID. Jest to najłatwiejszy sposób na usunięcie rekordu.
SQL> Wybierz Rowid, Nazwa z nazwisk-RowidName ------------------------------------------- -------- Aabjnsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac carrieaabjnsaAmaadfoaad tom4 rzędy.SQL> Usuń z nazw, gdzie ROWID = `AabjnsaagaAdfoaaa`-1 rzędu usunięte.SQL> Commit-Complete.SQL> Wybierz Rowid, Nazwa odmian-RowidName --------------------------------------- AabjnsaaagaaaaaaaaAc CarrieaabjnsaaAdFoaad Wybrano wiersze Tom3.
  • Obraz zatytułowany Usuń duplikaty rekordy w Oracle Krok 2
    2. Usuń wszystkie powtarzalne linie z wyjątkiem jednego.
    SQL> Wybierz nazwę z nazwiska nazwiska ------------------------------- Alancietomal4 rzędy wybrane.SQL> Usuń z nazwisk, w których znalazły się nazwa = "rzędy alan`-2 usunięte.SQL> Commit-Complete.SQL> Włóż do wartości nazw ("Alan") - 1 wiersz utworzony.SQL> Commit-Complete.SQL> Wybierz * z nazwiska nazwiska ------------------------------ AlanCarietomRows wybrane.
  • Obraz zatytułowany Usuń duplikaty rekordy w Oracle Krok 3
    3. Użyj funkcji MAX lub MIN, aby uzupełnić i usunąć wszystkie inne linie. W takim przypadku, jeśli jest kilka duplikatów, zostaną usunięte.
    SQL> Wybierz Rowid, Nazwa z nazwisk-RowidName ------------------------------------------- --------- Aabjnsaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac carrieaabjansaAAAAAdFoaad tomaabjnsaAagaadfoaaf alan5 rzędy wybrane.SQL> Usuń z nazwisk A2where Rowid> (Wybierz Min (Rowid) z nazwisk B3where B.Nazwa = A.Nazwa4) -2 rzędy usunięte.SQL> Wybierz Rowid, Nazwa z nazwisk-RowidName ------------------------------------------- -------- AabjnsaagaAdFoaaaaaaac Carrieaabjnsaac CarrieaabjnsaAagaAdFoaad Tom3 Rzędy.SQL> Commit-Complete.}}
  • Duplicate Linia 3 powyżej i dodaj nową nazwę kolumny, jeśli masz kilka kolumn w tabeli. Przypuśćmy, że masz kolumnę wieków, zespół będzie następny.

    [[Zdjęcie: Usuń duplikaty rekordy w Oracle Krok 4.Jpg | centrum | 550px]] {{CodeBox | lang ="Oracle8"> SQL> Wybierz * z nazwisk ----------------------------------------- alan50carrie51tom52alan504 Wybrane wiersze.SQL> Usuń z nazwisk A2where Rowid> (Wybierz Min (Rowid) z nazwisk B3where B.Nazwa = A.Nazwa4and B.Wiek = A.Age5) -1 rzędu usunięte.SQL> Wybierz * z nazwisk-nameage ------------------------------ ---------- Alan50carrie51tom52Rows.SQL> Commit-Complete.
  • Ostrzeżenie

    • Utwórz kopię zapasową tabeli, aby porównać i pokazywać zawartość tabeli przed usunięciem cokolwiek (jeśli masz jakiekolwiek pytania).
    SQL> Utwórz Alan stołowy.Imion_backup jako wybór * z utworzonego tabeli nazw.
    Podobne publikacje