Kapag nagtatrabaho sa Oracle, maaari mong malaman na ang ilan sa iyong mga tala ay may mga duplicate. Maaari mong i-delete ang mga duplicate na row na ito sa pamamagitan ng pagkilala sa kanila at paggamit ng RowID, o row address. Bago ka magsimula, dapat kang lumikha ng isang backup na talahanayan kung sakaling kailangan mong i-refer ang mga ito pagkatapos mong matanggal ang mga tala.
Mga hakbang
Paraan 1 ng 4: Pagkilala sa iyong Duplicate
Hakbang 1. Kilalanin ang duplicate
Sa kasong ito, tukuyin ang halimbawang halimbawa, "Alan." Tiyaking ang mga tala na sinusubukan mong tanggalin ay talagang mga duplicate sa pamamagitan ng pagpasok sa SQL sa ibaba.
Hakbang 2. Pagkilala mula sa isang haligi na pinangalanang "Mga Pangalan
"Sa halimbawa ng isang haligi na pinangalanang" Mga Pangalan, "papalitan mo ang" pangalan ng haligi "ng Mga Pangalan.
Hakbang 3. Pagkilala mula sa iba pang mga haligi
Kung sinusubukan mong kilalanin ang duplicate ng isang iba't ibang haligi, halimbawa ang edad ni Alan sa halip na ang kanyang pangalan, ipasok mo ang "Edad" sa lugar ng "haligi_pangalan" at iba pa.
piliin ang haligi_pangalan, bilangin (haligi_pangalan) mula sa pangkat ng talahanayan ayon sa haligi_pangalan na may bilang (haligi_pangalan)> 1;
Paraan 2 ng 4: Pagtanggal ng Isang Dobleng
Hakbang 1. Piliin ang "pangalan mula sa mga pangalan
"Pagkatapos ng" SQL, "na kumakatawan sa Karaniwang Wika ng Query, ipasok ang" piliin ang pangalan mula sa mga pangalan."
Hakbang 2. Tanggalin ang lahat ng mga hilera na may duplicate na pangalan
Pagkatapos ng "SQL," ipasok ang "tanggalin mula sa mga pangalan kung saan name = 'Alan';." Tandaan na mahalaga ang capitalization dito, kaya tatanggalin nito ang lahat ng mga hilera na pinangalanang "Alan." Pagkatapos ng "SQL," ipasok ang "gumawa."
Hakbang 3. Renter ang hilera nang walang isang duplicate
Ngayon na natanggal mo ang lahat ng mga hilera na may halimbawang pangalan na "Alan," maaari mong ipasok ang isa pabalik sa pamamagitan ng pagpasok ng "ipasok sa mga halaga ng pangalan ('Alan');." Pagkatapos ng "SQL," ipasok ang "gumawa" upang likhain ang iyong bagong hilera.
Hakbang 4. Tingnan ang iyong bagong listahan
Kapag nakumpleto mo na ang mga hakbang sa itaas, maaari mong suriin upang matiyak na wala ka nang mga duplicate na tala sa pamamagitan ng pagpasok ng "piliin ang * mula sa mga pangalan."
SQL> piliin ang pangalan mula sa mga pangalan; PANGALAN ----------------- Napili ang mga hilera ni Alan Carrie Tom Alan. SQL> tanggalin mula sa mga pangalan kung saan name = 'Alan'; ang mga hilera ay tinanggal. SQL> gumawa; Kumpleto na. SQL> ipasok sa mga halaga ng pangalan ('Alan'); nalikha ang hilera. SQL> gumawa; Kumpleto na. SQL> piliin * mula sa mga pangalan; PANGALAN ----------------- Napili ang mga hilera ni Alan Carrie Tom.
Paraan 3 ng 4: Pagtanggal ng Maramihang Mga Doble
Hakbang 1. Piliin ang RowID na nais mong tanggalin
Pagkatapos ng "SQL," ipasok ang "piliin ang rowid, pangalan mula sa mga pangalan;."
Hakbang 2. Tanggalin ang duplicate
Pagkatapos ng "SQL," ipasok ang "tanggalin mula sa mga pangalan kung saan rowid> (piliin ang min (rowid) mula sa mga pangalan b kung saan b.name = a.name);" upang tanggalin ang mga duplicate na tala.
Hakbang 3. Suriin ang mga duplicate
Matapos mong makumpleto ang nasa itaas, suriin ng mga utos upang makita kung mayroon ka pa ring mga duplicate na tala sa pamamagitan ng pagpasok ng "piliin ang rowid, pangalan mula sa mga pangalan;" at pagkatapos ay "gumawa."
SQL> piliin ang rowid, pangalan mula sa mga pangalan; ROWID NAME ----------------- ----------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Napili ang mga hilera ng Alan. SQL> tanggalin mula sa mga pangalan a kung saan rowid> (piliin ang min (rowid) mula sa mga pangalan b kung saan b.name = a.name); ang mga hilera ay tinanggal. SQL> piliin ang rowid, pangalan mula sa mga pangalan; ROWID NAME ----------------- ----------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Napili ang mga hanay ng Tom. SQL> gumawa; Kumpleto na.
Paraan 4 ng 4: Pagtanggal ng Mga Rows na may Mga Haligi
Hakbang 1. Piliin ang iyong mga hilera
Pagkatapos ng "SQL," ipasok ang "piliin ang * mula sa mga pangalan;" upang makita ang iyong mga hilera.
Hakbang 2. Tanggalin ang mga dobleng hilera sa pamamagitan ng pagkilala sa kanilang haligi
Matapos ang "SQL '" ipasok ang "tanggalin mula sa mga pangalan kung saan rowid> (piliin ang min (rowid) mula sa mga pangalan b kung saan b.name = a.name at b.age = a.age);" upang tanggalin ang mga duplicate na talaan.
Hakbang 3. Suriin ang mga duplicate
Kapag nakumpleto mo na ang mga hakbang sa itaas, ipasok ang "select * mula sa mga pangalan;" at pagkatapos ay "gumawa" upang suriin na matagumpay mong natanggal ang mga duplicate na tala.
SQL> piliin * mula sa mga pangalan; NAME AGE ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 napili ang mga hilera. SQL> tanggalin mula sa mga pangalan a kung saan rowid> (piliin ang min (rowid) mula sa mga pangalan b kung saan b.name = a.name at b.age = a.age); tinanggal ang hilera. SQL> piliin * mula sa mga pangalan; NAME AGE ---------------------------- ---------- Alan 50 Carrie 51 Tom 52 na hilera ang napili. SQL> gumawa; Kumpleto na.
Mga babala
-
Lumikha ng isang backup na talahanayan sa iyong sariling pag-sign in na maaari mong gamitin upang maipakita kung ano ang naroon bago may anumang pagtanggal na naganap (kung sakaling may mga katanungan).
SQL> lumikha ng talahanayan alan.names_backup bilang pili * mula sa mga pangalan; Nilikha ang mesa.