Hoe om dubbele rekords in oracle te verwyder
Wanneer u in Oracle werk, kan u vind dat sommige van u rekords duplikate het. U kan hierdie duplikaat rye uitvee deur hulle te identifiseer en sy roeide of ry adres te gebruik. Voordat jy begin, moet jy `n rugsteuntafel skep as jy dit moet verwys nadat jy rekords verwyder het.
Stappe
Metode 1 van 4:
Identifiseer jou duplikaat1. Identifiseer die duplikaat. Identifiseer in hierdie geval die voorbeeld duplikaat, "Alan." Maak seker dat die rekords wat jy probeer verwyder, eintlik duplikate is deur die SQL hieronder te betree.

2. Identifiseer uit `n kolom wat genoem word "Name." In die geval van `n kolom genoem "Name," jy sal vervang "kolom_naam" met name.

3. Identifiseer van ander kolomme. As jy probeer het om die duplikaat deur `n ander kolom te identifiseer, byvoorbeeld die ouderdom van Alan eerder as sy naam, sal jy binnekom "Ouderdomme" in die plek van "kolom_naam" en so aan.
Kies kolomnaam, telling (Column_name) van TableGroup deur kolom_NameHaving Count (Column_Name) > 1-
Metode 2 van 4:
`N enkele duplikaat verwyder1. Uitkies "Naam van name." Nadat "Sql," wat staan vir standaard navraag taal, ENTER "Kies Naam van Name."

2. Verwyder al die rye met die duplikaat naam. Nadat "Sql," ingaan "Verwyder van name waar Naam = `Alan`-." Let daarop dat kapitalisasie hier belangrik is, dus sal dit al die rye genoem word "Alan." Nadat "Sql," ingaan "pleeg."

3. Huurder die ry sonder `n duplikaat. Noudat jy alle rye met die voorbeeld naam verwyder het "Alan," U kan een terug invoeg deur te betree "Voeg in naamwaardes in (`Alan`)-." Nadat "Sql," ingaan "pleeg" Om jou nuwe ry te skep.

4. Sien jou nuwe lys. Sodra u die bogenoemde stappe voltooi het, kan u seker maak dat u nie meer duplikaatrekords het deur in te gaan nie "kies * van name."
Sql > Kies Naam van Name-Naam ------------------------------ AlanCarrieTomAlanRows gekies.Sql > Verwyder van name waar Naam = `Alan`-rye verwyder.Sql > commit-commit voltooi.Sql > Voeg in name waardes (`Alan`) - ry geskep.Sql > commit-commit voltooi.Sql > Kies * van name-naam ------------------------------ AlancarrieMrowes gekies.
Metode 3 van 4:
Verwydering van verskeie duplikate1. Kies die ROWID wat jy wil verwyder. Nadat "Sql," ingaan "Kies Rowid, Naam van Name-."

2. Verwyder die duplikaat. Nadat "Sql," ingaan "Verwyder van name A waar Rowid > (kies min (Rowid) van name B waar b.Naam = a.Naam)-" Om dubbele rekords te verwyder.

3. Kontroleer vir duplikate. Nadat u bogenoemde voltooi het, maak Commands om te sien of u nog duplikaatrekords het deur in te gaan "Kies Rowid, Naam van Name-" en dan "pleeg."
Sql > Kies Rowid, Naam van Name-Rowidname ------------------ ------------------------ ------ AABJNSAAGAAADFOAAA ALANAABJNSAAGAAADFOAAB ALANAABJNSAAGAAADFOAAC CARRIETEABJNSAAGAAADFOAAD TOMAABJNSAAGAAADFOAAF ALANRUGE CUESETES.Sql > Verwyder uit name op Rowid > (kies min (rowid) van name bhere b.Naam = a.Naam) - Growed verwyder.Sql > Kies Rowid, Naam van Name-Rowidname ------------------ ------------------------ ------ AABJNSAAGAAADFOAAA ALANAABJNSAAGAAADFOAAC CarrieAabjnsaagaaadfoaad Tomrows Geselekteerde.Sql > commit-commit voltooi.
Metode 4 van 4:
Rye met kolomme verwyder1. Kies jou rye. Nadat "Sql," ingaan "kies * van name-" Om jou rye te sien.

2. Verwyder duplikaat rye deur hul kolom te identifiseer. Nadat "SQL `" ingaan "Verwyder van name A waar Rowid > (kies min (Rowid) van name B waar b.Naam = a.Naam en B.Ouderdom = a.Ouderdom)-" Om die duplikaat rekords te verwyder.

3. Kontroleer vir duplikate. Sodra jy die bogenoemde stappe voltooi het, betree "kies * van name-" en dan "pleeg" Om seker te maak dat u die duplikaat rekords suksesvol verwyder het.
Sql > Kies * Van Name-NameAge ------------------------------ ---------- Alan50Carrie51Tom52Alan50Rows gekies.Sql > Verwyder uit name op Rowid > (kies min (rowid) van name bhere b.Naam = a.Nameand B.Ouderdom = a.Ouderdom) -Row verwyder.Sql > Kies * Van Name-NameAge ------------------------------ ---------- Alan50Carrie51Tom52Rows gekies.Sql > commit-commit voltooi.
Wenke
Waarskuwings
Skep `n rugsteuntafel in jou eie aanmelding wat jy kan gebruik om te wys wat daar was voordat enige uitvee plaasgevind het (in geval daar enige vrae is).
Sql > Skep Tabel Alan.name_backup as kies * van name-tafel geskep.
Deel op sosiale netwerke: