Как да изтриете повтарящи се записи в oracle

Повтарящите се линии в Oracle могат да бъдат диференцирани само чрез техния "Rowid" (линия адрес).

Стъпка

  1. Изображение, озаглавено Изтриване на дублиращи се записи в Oracle Step 1
един. Извадете нишката с помощта на Rowid. Това е най-лесният начин за премахване на записа.
SQL> Изберете Rowid, име от имена-Rowidname ---------------------------------------- -------- aabjnsaagaaaaaaaaaaaaaaaaaaaaaaaaaaac carrieaabjnsaagaaadfoaad tom4 редове с избрано.SQL> Изтрий от имена, където Rowid = `aabjnsaagaaadfoaa`-1 ред се изтрива.SQL> Комитет.SQL> Изберете Rowid, име от имена-RowidName ---------------------------------------------------- Aabjnsaagaaaaaaaaaac carrieaabjnsaagaaadfoaad Избрани редове Tom3.
  • Изображение, озаглавено Изтриване на дублирани записи в Oracle Step 2
    2. Изтрийте всички повтарящи се линии, с изключение на един.
    SQL> Изберете име от имена-име ------------------------------ alancarrietomalan4 редове.SQL> Изтрий от имена, където името = `alan`-2 редовете изтрити.SQL> Комитет.Sql> вмъкнете в имена ("Alan") - 1 ред създаден.SQL> Комитет.SQL> Изберете * от имена-име -------------------------------------------- Alancarietomrows.
  • Изображение, озаглавено Изтриване на дублирани записи в Oracle Step 3
    3. Използвайте функцията MAX или MIN, за да греете и изтривате всички други линии. В този случай, ако има няколко дубликати, те ще бъдат изтрити.
    SQL> Изберете Rowid, име от имена-Rowidname ---------------------------------------- -------- aabjnsaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaac carrieabjansaagaaadfoaad tomaabjnsaagaaadfoaaf alan5 редове.SQL> Изтриване от имена A2CHER ROWID> (Изберете min (Rowid) от имена b3where b.Име = А.Име 4) -2 реда изтрити.SQL> Изберете Rowid, име от имена-Rowidname ---------------------------------------- -------- AABJNSAAGAADFOAAAAAACAAC CARRIEAABJNSAAC CARRIEAABJNSAAGAADFOAAD TOM3 Редове.SQL> Комитет.}}
  • Дублиран ред 3 по-горе и добавете ново име на колона, ако имате няколко колони в таблицата. Да предположим, че имате колона от векове, отборът ще бъде следващия.

    [[Image: Изтрийте дублиращите се записи в Oracle Step 4.JPG | Център | 550px]] {{coadbox | lang ="Oracle8"> SQL> Изберете * от имена-пък :---------------------------- ---------- alan50carrie51tom52alan504 Избрани редове.SQL> Изтриване от имена A2CHER ROWID> (Изберете min (Rowid) от имена b3where b.Име = А.Име 4 и Б.Възраст = А.Възраст5) -1 ред изтрит.SQL> Изберете * от имена-прикритие -------------------------------------------- ---------- Alan50carrie51Tom52rows.SQL> Комитет.
  • Предупреждения

    • Създайте резервно копие на масата, за да сравните и покажете съдържанието на таблицата, преди да изтриете нещо (ако имате някакви въпроси).
    SQL> Създаване на маса Alan.Name_backup, както е изберете * от създадената таблица.
    Подобни публикации