Sådan sletter du duplikater i Oracle

Når du arbejder med Oracle, kan du støde på nogle dublette poster. Du kan ekskludere dubletter ved at identificere dem og bruge din egen RowID (linjeidentifikator) eller dens adresse. Før du begynder, anbefales det at oprette en tabel backup, hvis du har brug for en reference efter sletning af posterne.

trin

Metode 1
Identifikation af duplikater

Billede med titlen Slet dubletter i Oracle Trin 1
1
Identificer de dobbelte poster. I dette eksempel bruger vi navnet "Alan". Bekræft, at de poster, du vil slette, faktisk er dubletter ved at bruge følgende SQL-streng.
  • Billede med titlen Slet dubletter i Oracle Trin 2
    2
    Identificer optegnelserne ved hjælp af kolonnen "Navn". Hvis du for eksempel har en kolonne med navnet "Navn", skal du erstatte "column_name" med "Navne".
  • 3
    Identificer dem ved hjælp af andre kolonner. Hvis du har til hensigt at forsøge at identificere den dobbelte post gennem en anden kolonne, som Alans alder, i stedet for hans navn, skal du indtaste "Ages" i stedet for "column_name" og så videre.
  • VELG kolonnenavn, COUNT (kolonnenavn) fra tabelgruppe ved kolonne_navnHAVING COUNT (kolonnenavn)> 1-
    Billede med titlen Slet Duplicate Records i Oracle Trin 3

    Metode 2
    Sletter en enkelt duplikat post

    Billede med titlen Slet dubletter i Oracle Trin 4
    1
    Bruger kommandoen "Vælg navn fra navne". Efter "SQL", som betyder "Standard Query Language", skal du indtaste "vælg navn fra navne".
  • Billede med titlen Slet Duplicate Records i Oracle Trin 5
    2
    Slet alle rækker med duplikatnavnet. Efter "SQL", skriv "Slet fra navne, hvor navn = `Alan`;". Bemærk at det er vigtigt at skrive navnet "Alan" med det første bogstav, så det slettes. Efter "SQL", skriv "commit".
  • Billede med titlen Slet dubletter i Oracle Trin 6
    3

    Video: Cloud Computing - Computer Science for Business Leaders 2016

    Genindsæt linjen, denne gang uden duplikatoptegnelsen. Nu hvor du har slettet alle linjer med eksempelnavnet "Alan", kan du indtaste et andet navn ved at skrive "indsæt i navneværdier (`Alan`) -." Efter "SQL", skriv "commit" for at oprette en ny linje.
  • 4

    Video: Week 8, continued

    Se den nye liste. Når du har gennemført ovenstående trin, skal du kontrollere, at der ikke er flere dublette poster ved at skrive "vælg * fra navne".
  • SQL> SELECT navn FROM navne-NAME ------------------------------ AlanCarrieTomAlanROWS selected.SQL> DELETE FROM WHERE navn = navnene Alan`-RÆKKER deleted.SQL> COMMIT COMMIT-complete.SQL> INSERT INTO navne VALUES ( `Alan`) - ROW created.SQL> COMMIT COMMIT-complete.SQL> SELECT * FROM navne-navn ------- ----------------------- AlanCarrieTomROWS valgt.
    Billede med titlen Slet Duplicate Records i Oracle Trin 7


    Metode 3
    Sletning af flere dublette poster

    Billede med titlen Slet dubletter i Oracle Trin 8
    1
    Vælg den RowID, du vil slette. Efter "SQL", skriv "vælg rowid, navn fra navne;".
  • Billede med titlen Slet dubletter i Oracle Trin 9
    2
    Slet den dobbelte post. Efter "SQL", skriv "Slet fra navne til hvor rowid" (vælg min (rowid) fra navne b hvor b.name = a.name) - "for at slette de dublette poster.
  • 3
    Kontroller de dublette poster. Efter at have udført ovenstående trin, skal du kontrollere, at der stadig findes dubletter, ved at skrive "vælg rowid, navn fra navne" og derefter "commit".
  • SQL> SELECT ROWID, navn FROM navne ROWID-NAME ------------------ --------------------- --------- AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAB AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD TomAABJnsAAGAAAdfOAAF AlanROWS selected.SQL> DELETE FROM navne aWHERE ROWID> (SELECT MIN (ROWID) FROM navne bWHERE b.nome = a.nome) -ROWS deleted.SQL> SELECT ROWID , navn FROM navne ROWID-navn ------------------ ------------------------- ----- AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD TomROWS selected.SQL> COMMIT-COMMIT komplet.}}

    Video: Top 25 Excel 2016 Tips and Tricks

    Video: Web Development - Computer Science for Business Leaders 2016

    Billede med titlen Slet dubletter i Oracle Trin 10

    Metode 4
    Sletter rækker med kolonner

    Billede med titlen Slet dubletter i Oracle Step 11
    1
    Vælg rækkerne. Efter "SQL", skriv "vælg * fra navne;" for at tjekke rækkerne.
  • Billede med titlen Slet Duplicate Records i Oracle Trin 12
    2
    Slet dublet rækker ved at identificere deres kolonner. Efter "SQL", "type" slet fra navne, hvor ROWID> (vælg min (ROWID) fra navne, hvor b = b.nome a.nome og b.idade = a.idade) - "for at slette dubletter.
  • 3
    Kontroller de dublette poster. Når du har gennemført ovenstående trin, skal du indtaste "vælg * fra navne" og derefter "commit" for at kontrollere, at sletningen af ​​de dobbelte poster var vellykket.
  • SQL> VÆLG * FRA NAME-AGE NAME ------------------------------ ---------- Alan 50Carrie 51Tom 52Alan 50ROWS selected.SQL> DELETE FROM navne aWHERE ROWID> (SELECT MIN (ROWID) FROM navne bWHERE b.nome = a.nomeAND b.idade = a.idade) Toradet deleted.SQL> SELECT * FROM navne-navn AGE ------------------------------ ---------- Alan 50Carrie 51Tom 52ROWS selected.SQL> COMMIT -COMMIT komplet.
    Billede med titlen Slet dubletter i Oracle Trin 13

    advarsler

    • Opret en sikkerhedskopi af tabellen i din session og brug den til at se, hvad de oprindelige tabeldata var før sletning af dublette poster (hvis der er et spørgsmål).
      SQL> CREATE TABLE alan.nomes_backup AS SELECT * FRA TABLE-navne oprettet.
    Del på sociale netværk:

    Relaterede
    © 2024 HodTari.com