Hoe om dubbele rekords in Oracle te verwyder
Wanneer u met Oracle werk, kan duplikaat rekords dikwels voorkom. U kan hierdie dubbele rye uitskakel deur hulle te identifiseer en hul eie RowID (ry-identifiseerder) of die ryadres te gebruik. Voordat u begin, moet u `n rugsteun van die tabel skep indien u dit moet hersien nadat u die rekords uitgevee het.
conținut
stappe
Metode 1
Identifiseer duplikaat rekords
1
Identifiseer duplikaat rekords In hierdie geval sal die saak geïdentifiseer word "Alan" wat twee keer in die tabel verskyn. Maak seker dat die rekords wat jy probeer uitvee, eintlik gedupliseer word deur die volgende SQL-stelling te gebruik.
2
Identifiseer hulle deur die kolom genoem "name". Byvoorbeeld, as jy `n kolom genoem het "name", moet jy vervang "column_name" deur "name".
3
Identifiseer hulle deur ander kolomme. As jy probeer om die duplikate deur `n ander kolom te identifiseer, byvoorbeeld, kyk na Alan se ouderdom in plaas van sy naam, voer in "ouderdomme" in plaas van "column_name" en so aan.
SELECT kolomnaam, COUNT (kolomnaam) VAN TABEL GROEP BY kolomnaam MET COUNT (kolomnaam) > 1-
Metode 2
Skrap `n enkele duplikaatwaarde
1
Gebruik die sin SELEK naam van name. na SQL, wat bedoel jy "Standaard navraag taal" (gestandaardiseerde taal van konsultasies), skryf SELEK naam van name.
2
Verwyder alle rye wat die duplikaat naam bevat. na SQL, skryf die sin neer Vee uit name WAAR naam = `Alan`. Let daarop dat u alle kolomme met die naam uitskakel "Alan" Dit is belangrik om die eerste letter in hoofletters te skryf. na SQL, skryf pleeg.
3
Voer die ry weer in, nou sonder die duplikaat. Noudat jy al die rye wat die voorbeeldnaam het, uitgevee het "Alan", moet jy weer `n ander een deur die sin voeg INSERT in name WAARDES (`Alan`) -. na SQL, skryf pleeg om die nuwe kolom te skep.
4
Kyk na die nuwe lys. Sodra u bogenoemde stappe voltooi het, kan u die tabel hersien om seker te maak dat daar geen duplikaatrekords deur die sin is nie KIES * VAN NAME.
SQL > SELECT naam VAN NAME-NAME ------------------------------ AlanCarrieTomAlanrows selected.SQL > verwyder uit name waar naam = `Alan`-rye deleted.SQL > commit-Commit complete.SQL > voeg in name waardes in (`Alan`) - ry geskep. SQL > commit-Commit complete.SQL > kies * van name-NAME ------------------------------ AlanCarrieTomrows gekies.
Metode 3
Vee verskeie rekords uit
1
Kies die RowID wat jy wil verwyder. na SQL, skryf SELECT ROWID, naam FROM name-.
2
Verwyder duplikaat rekords. na SQL, skryf Vee van name af na WHERE ROWID > (SELECT MIN (ROWID) VAN NAME b WAAR b.name = a.naam) - duplikaat rekords uit te skakel.
3
Kyk of daar duplikate is. Nadat u die bogenoemde stappe voltooi het, kyk of daar nog dubbele rekords is deur te tik SELECT ROWID, naam FROM name- en dan pleeg.
SQL > SELECT ROWID, naam VAN name-ROWID NAME ------------------ ----------------------- ------- AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAB AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD TomAABJnsAAGAAAdfOAAF Alanrows selected.SQL > Skrap uit name wakker ry > (kies min (rowid) van name bwhere b.name = a.name) -weergawes verwyder.SQL > kies rowwe, naam van name-ROWID NAME ------------------ ----------------------- ------- AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD Tomrows selected.SQL > commit-commit voltooi.}}
Metode 4
Verwyder rye deur die kolomme
1
Kies die rye na SQL, skryf KIES * VAN NAME- om die rye te sien.
2
Verwyder dubbele rye deur hulle deur hul kolomme te identifiseer. na SQL, skryf Vee van name af na WHERE ROWID > (SELECT MIN (ROWID) VAN NAME b WAAR b.name = a.naam EN b.edad = a.edad) - duplikaat rekords uit te skakel.
3
Kyk of daar duplikate is. Nadat u die bogenoemde stappe voltooi het, kyk of daar nog dubbele rekords is deur te tik SELECT ROWID, naam FROM name- en dan pleeg om te verifieer dat duplikaat rekords suksesvol verwyder is.
SQL > SELECT * VAN NAAM-NAAM OUDERDOM ------------------------------ ---------- Alan 50Carrie 51Tom 52Alan 50ROWS selected.SQL > SLEUTEL VAN NAME AWHERE ROWID > (SELECT MIN (ROWID) VAN NAME bWHERE b.name = a.nameAND.b.age = a.age) -ROW verwyder.SQL > SELECT * VAN NAAM-NAAM OUDERDOM ------------------------------ ---------- Alan 50Carrie 51Tom 52ROWS selected.SQL > COMMIT-COMMIT voltooi.
waarskuwings
- Skep `n rugsteun van u tafel in u sessie en gebruik dit om te sien wat die oorspronklike tabel data was voordat u die duplikate verwyder het (indien u enige vrae het).
SQL > SKEP TAFEL alan.names_backup AS SELECT * FROM name-TABLE geskep.
Deel op sosiale netwerke:
Verwante
- Hoe om webadresse in Mozilla Firefox te verwyder
- Hoe herhaalde rekords in Excel 2007 verwyder word
- Hoe om `n kop in Excel te voeg
- Hoe om Microsoft Excel-kolomme alfabeties te akkommodeer
- Hoe om `n kolom in `n spiltafel by te voeg
- Hoe om data-ooreenkomste in Excel te vind
- Hoe om `n histogram in Excel te skep
- Hoe om `n eenvoudige tabel in Microsoft Word te skep
- Hoe om Excel te verdeel
- Hoe om duplikate in iTunes te verwyder
- Hoe om duplikate in Excel te verwyder
- Hoe om duplikate maklik in Microsoft Access te vind
- Hoe om hoofletters en kleinletters in binêre kode te skryf
- Hoe om die geskiedenis van jou gesprekke in Windows Live Messenger op te neem
- Hoe om selle in Excel te vries
- Hoe om `n tabel in `n Microsoft Word-dokument in te voeg
- Hoe om Oracle Edition Express 11G te installeer
- Hoe om kolomme in Excel te wys
- Hoe om selle alfabeties in Excel te sorteer
- Hoe om van 10 tot 20 in Engels te tel
- Hoe om die bestuurders te rugsteun