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
Vaihe 1. Tunnista kaksoiskappaleet
Tässä esimerkissä tunnistamme kaksoiskappaleen "Alan". Varmista, että poistettavat tietueet ovat todellakin kaksoiskappaleita kirjoittamalla alla oleva SQL.
Vaihe 2. Tunnista sarake nimeltä "Nimi"
Jos sarakkeen otsikko on "Nimi", "sarakkeen_nimi" on korvattava nimellä.
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
Vaihe 1. Valitse "nimi nimistä"
Kirjoita "SQL" (lyhenne sanoista Standard Query Language) jälkeen "valitse nimi nimistä".
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"
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.
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
Vaihe 1. Valitse RowID, jonka haluat poistaa
Kirjoita "SQL": n jälkeen "select rowid, name from names;."
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.
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
Vaihe 1. Valitse rivi
Kirjoita "SQL": n jälkeen "select * nimistä;" jotta voisin nähdä linjan.
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.
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.