4 tapaa poistaa päällekkäiset tietueet Oraclesta

Sisällysluettelo:

4 tapaa poistaa päällekkäiset tietueet Oraclesta
4 tapaa poistaa päällekkäiset tietueet Oraclesta

Video: 4 tapaa poistaa päällekkäiset tietueet Oraclesta

Video: 4 tapaa poistaa päällekkäiset tietueet Oraclesta
Video: 40 советов и хитростей со словами на 2020 год 2024, Joulukuu
Anonim

Työskennellessäsi Oraclessa voit löytää kopioita joistakin tietueista. Voit poistaa päällekkäiset rivit tunnistamalla ne ja käyttämällä vastaavaa RowID -aliaksen riviosoitetta. Ennen kuin aloitat, luo varmuuskopiotaulukko, jos tarvitset viitteen tietueen poistamisen jälkeen.

Vaihe

Menetelmä 1/4: Kaksoiskappaleiden tunnistaminen

Poista päällekkäiset tietueet Oraclen vaiheessa 1
Poista päällekkäiset tietueet Oraclen vaiheessa 1

Vaihe 1. Tunnista kaksoiskappaleet

Tässä esimerkissä tunnistamme kaksoiskappaleen "Alan". Varmista, että poistettavat tietueet ovat todellakin kaksoiskappaleita kirjoittamalla alla oleva SQL.

Poista päällekkäiset tietueet Oraclen vaiheessa 2
Poista päällekkäiset tietueet Oraclen vaiheessa 2

Vaihe 2. Tunnista sarake nimeltä "Nimi"

Jos sarakkeen otsikko on "Nimi", "sarakkeen_nimi" on korvattava nimellä.

Poista päällekkäiset tietueet Oraclen vaiheessa 3
Poista päällekkäiset tietueet Oraclen vaiheessa 3

Vaihe 3. Tunnista muut sarakkeet

Jos yrität tunnistaa päällekkäisyyksiä eri sarakkeista, esimerkiksi Alanin iän nimen sijasta, kirjoita "ikä" sarakkeen_nimen sijaan ja niin edelleen.

valitse sarakkeen_nimi, laske (sarakkeen_nimi) taulukkoryhmästä sarakkeen_nimen mukaan, jonka määrä (sarakkeen_nimi)> 1;

Tapa 2/4: Yksittäisten kaksoiskappaleiden poistaminen

Poista päällekkäiset tietueet Oraclen vaiheessa 4
Poista päällekkäiset tietueet Oraclen vaiheessa 4

Vaihe 1. Valitse "nimi nimistä"

Kirjoita "SQL" (lyhenne sanoista Standard Query Language) jälkeen "valitse nimi nimistä".

Poista päällekkäiset tietueet Oraclen vaiheessa 5
Poista päällekkäiset tietueet Oraclen vaiheessa 5

Vaihe 2. Poista kaikki rivit, joilla on päällekkäiset nimet

Kirjoita "SQL": n jälkeen "poista nimistä, joissa name = 'Alan';." On huomattava, että isot kirjaimet ovat tärkeitä, jotta tämä vaihe voi poistaa kaikki rivit nimeltä "Alan". Kirjoita "SQL" -merkin jälkeen "sitoutua"

Poista päällekkäiset tietueet Oraclen vaiheessa 6
Poista päällekkäiset tietueet Oraclen vaiheessa 6

Vaihe 3. Anna rivit uudelleen ilman kaksoiskappaleita

Nyt kun olet poistanut kaikki rivit ja korvannut ne "Alanilla", täytä yksi takaisin kirjoittamalla "insert into name values ('Alan');." Kirjoita "SQL": n jälkeen "sitoutua" uuden rivin luomiseksi.

Poista päällekkäiset tietueet Oraclen vaiheessa 7
Poista päällekkäiset tietueet Oraclen vaiheessa 7

Vaihe 4. Tarkastele uutta luetteloa

Kun olet suorittanut yllä olevat vaiheet, voit tarkistaa, ettei päällekkäisiä tietueita ole enää kirjoittamalla "valitse * nimistä".

SQL> valitse nimi nimistä; NIMI ------------------------------ Alan Citra Tomi Alan Baris valittu. SQL> poista nimistä jossa name = 'Alan'; Rivi poistetaan. SQL> sitoutuu; / Sitoumus valmis. SQL> lisää nimiin arvot ('Alan'); rivi luotu. SQL> sitoutuu; Sitoumus valmis. SQL> valitse * nimistä; NIMI ------------------------------ Alan Citra Tomi -rivit valittu.

Tapa 3/4: Useiden kaksoiskappaleiden poistaminen

Poista päällekkäiset tietueet Oraclen vaiheessa 8
Poista päällekkäiset tietueet Oraclen vaiheessa 8

Vaihe 1. Valitse RowID, jonka haluat poistaa

Kirjoita "SQL": n jälkeen "select rowid, name from names;."

Poista päällekkäiset tietueet Oraclen vaiheessa 9
Poista päällekkäiset tietueet Oraclen vaiheessa 9

Vaihe 2. Poista kaksoiskappaleet

Kirjoita "SQL": n jälkeen "poista nimistä a jossa rivi> (valitse min (rivi) nimistä b missä b.nimi = a.nimi);" kaksoiskappaleiden poistamiseen.

Poista päällekkäiset tietueet Oraclen vaiheessa 10
Poista päällekkäiset tietueet Oraclen vaiheessa 10

Vaihe 3. Tarkista kaksoiskappaleet

Kun olet suorittanut yllä olevat vaiheet, tarkista kaksoiskappaleet kirjoittamalla "select rowid, name from names;" sitten "sitoutua".

SQL> valitse rivit, nimi nimistä; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan -rivit valittu. SQL> poista nimistä a jossa rowid> (valitse min (rowid) nimistä b missä b.name = a.name); rivit poistettu. SQL> valitse rivit, nimi nimistä; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom -rivit valittu. SQL> sitoutuu; Sitoumus valmis.

Tapa 4/4: Rivien poistaminen sarakkeiden mukaan

Poista päällekkäiset tietueet Oraclen vaiheessa 11
Poista päällekkäiset tietueet Oraclen vaiheessa 11

Vaihe 1. Valitse rivi

Kirjoita "SQL": n jälkeen "select * nimistä;" jotta voisin nähdä linjan.

Poista päällekkäiset tietueet Oraclen vaiheessa 12
Poista päällekkäiset tietueet Oraclen vaiheessa 12

Vaihe 2. Poista päällekkäiset rivit tunnistamalla niiden sarakkeet

"SQL": n jälkeen "kirjoita" poista nimistä a jossa rivi> (valitse min (rivi) nimistä b missä b.nimi = a.nimi ja b. ikä = ikä.); " poistaa päällekkäiset tietueet.

Poista päällekkäiset tietueet Oraclen vaiheessa 13
Poista päällekkäiset tietueet Oraclen vaiheessa 13

Vaihe 3. Tarkista kaksoiskappaleet

Kun olet suorittanut yllä olevat vaiheet, kirjoita "valitse * nimistä;" sitten "sitoutua" nähdäksesi, onko kaksoiskappaleet todella poistettu.

SQL> valitse * nimistä; NIMI-IKÄ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 rivit valittu. SQL> poista nimistä a jossa rowid> (valitse min (rowid) nimistä b missä b.name = a.name ja b.age = a.age); rivi poistettu. SQL> valitse * nimistä; NAME AGE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 riviä valittu. SQL> sitoutuu; Sitoumus valmis.

Varoitus

  • Luo kaksoiskappale kirjautumistunnuksellesi, jotta sitä voidaan käyttää sisältöviitteenä, kun tietoja ei ole poistettu (jos sinulla on kysyttävää).

    SQL> luo taulukko alan.names_backup as * valitse nimistä; Taulukko luotu.

Suositeltava: