











Fjern dublerede data i oracle
Indhold
Hvis du arbejder i Oracle, vises nogle af dine data muligvis flere gange. Du kan fjerne disse dubletter ved at identificere dem og bruge deres rækkeadresse. Før du starter, skal du lave en kopi af tabellen, hvis du har brug for at henvise til den efter sletning af dataene.
Trin
Metode 1 af 4: Opdag dubletter

1. Identificer duplikatet. I dette tilfælde skal du identificere prøveduplikatet, `Alan`. Sørg for, at de poster, du forsøger at slette, faktisk er dubletter ved at indtaste SQL-kommandoen nedenfor.

2. Søg i kolonnen `Navne`. I tilfælde af en kolonne `Navne` skal du udfylde den for `kolonne_navn`.

3. Søg i andre kolonner. Hvis du prøver at finde dubletter i en anden kolonne, f.eks. Alans alder i stedet for hans navn, kan du udfylde `Alder` for `kolonnenavn` osv.
vælg kolonnenavn, antal (kolonne_navn) fra tabelgruppen efter kolonnenavn, der har antal (kolonne_navn) > 1;
Metode 2 af 4: Slet en enkelt dublet

1. Vælg `navne fra navne`. Efter `SQL` (Standard Query Language) skriv `vælg navn fra navne`.

2. Slet alle rækker med det dubletnavn. Efter `SQL` skriv `delete from names where name=`Alan`;`. Bemærk, at brug af store og små bogstaver er vigtigt her, så dette vil fjerne alle rækker med navnet `Alan`. Skriv `commit` efter `SQL`.

3. Gå ind i rækken igen uden duplikat. Nu hvor du har slettet alle rækker med eksempelnavnet `Alan`, kan du sætte en ind igen ved at indtaste `indsæt i navneværdier`(`Alan`);.` Efter `SQL` skriv `commit` for at oprette den nye række.

4. Tjek din nye liste. Når du har gennemført ovenstående trin, kan du kontrollere, om du ikke har dubletdata med kommandoen `vælg *fra navne`.
SQL > vælg navn fra navne; NAVN ----------------------------- Alan Carrie Tom Alan rækker valgt. SQL > slet fra navne hvor name=`Alan`; rækker slettet. SQL > begå; Forpligtelsen er fuldført. SQL > indsæt i navne værdier(`Alan`); række oprettet. SQL > begå; Forpligtelsen er fuldført. SQL > vælg *fra navne; NAVN ------------------------------------ Alan Carrie Tom rækker valgt.
Metode 3 af 4: Fjern flere dubletter

1. Vælg den rækkeadresse (række-id), du vil slette. Efter `SQL` skriv `vælg rowid, navn fra navne;`.

2. Slet dublet. Efter `SQL` skriv `delete from names a where rowid > (vælg min(rowid) fra navne b hvor b.navn=a.navn);` at fjerne dubletter af data.

3. Tjek for dubletter. Når du har gennemført ovenstående, skal du kontrollere, om du stadig har duplikerede data ved at skrive `vælg rowid, navn fra navne;` og derefter `forpligte`.
SQL > vælg rowid, navn fra navne; ROWIDNAME ------------------ ---------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rækker valgt. SQL > slette fra navne a where rowid > (vælg min(rowid) fra navne b hvor b.navn=a.navn); rækker slettet. SQL > vælg rowid, navn fra navne; ROWIDNAME ------------------ ---------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom rækker valgt. SQL > begå; Forpligtelsen er fuldført.
Metode 4 af 4: Slet rækker af kolonner

1. Vælg rækkerne. Efter `SQL` skriv `vælg *fra navne;` for at se de valgte rækker.

2. Fjern dublerede rækker ved at identificere deres kolonne. Efter `SQL` skriv `delete from names a where rowid > (vælg min(rowid) fra navne b hvor b.navn=a.navn og b.alder = a.alder);` for at fjerne de duplikerede data.

3. Tjek for dubletter. Når du har gennemført ovenstående trin, skal du skrive `vælg *fra navne;` og derefter `commit` for at kontrollere, om du har fjernet alle duplikerede data.
SQL > vælg *fra navne; NAVNEALDER ---------------------------------- ---------- Alan50 Carrie51 Tom52 Alan50 rækker valgt. SQL > slette fra navne a where rowid > (vælg min(rowid) fra navne b hvor b.navn=a.navn og b.alder = a.alder); række slettet. SQL > vælg *fra navne; NAVNEALDER ---------------------------------- ---------- Alan50 Carrie51 Tom52 rækker valgt. SQL > begå; Forpligtelsen er fuldført.
Advarsler
- Lav en sikkerhedskopi af tabellen under dit eget login, som du kan bruge til at vise, hvordan situationen var før sletningen (hvis der bliver stillet spørgsmål).
SQL > opret tabel alan.names_backup som vælg *fra navne; Tabellen er oprettet.
Artikler om emnet "Fjern dublerede data i oracle"
Оцените, пожалуйста статью
Populær