日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Oracle中查找和刪除重復記錄方法簡介

瀏覽:21日期:2023-11-24 18:42:17
平時工作中可能會碰到當試圖對庫表中的某一列或幾列創建唯一索引時,系統提示 ORA-01452 :不能創建唯一索引,發現重復記錄。 下面總結一下幾種查找和刪除重復記錄的方法(以表CZ為例): 表CZ的結構如下: SQL> desc czName Null? Type----------------------------------------- C1 NUMBER(10)C10 NUMBER(5)C20 VARCHAR2(3)刪除重復記錄的方法原理: (1).在Oracle中,每一條記錄都有一個rowid,rowid在整個數據庫中是唯一的,rowid確定了每條記錄是在Oracle中的哪一個數據文件、塊、行上。 (2).在重復的記錄中,可能所有列的內容都相同,但rowid不會相同,所以只要確定出重復記錄中那些具有最大rowid的就可以了,其余全部刪除。 重復記錄判定的標準是: C1,C10和C20這三列的值都相同才算是重復記錄。 經查看表CZ總共有16條記錄: SQL>set pagesize 100SQL>select * from cz;C1 C10 C20---------- ---------- ---1 2 dsf1 2 dsf1 2 dsf1 2 dsf2 3 che1 2 dsf1 2 dsf1 2 dsf1 2 dsf2 3 che2 3 che2 3 che2 3 che3 4 dff3 4 dff3 4 dff4 5 err5 3 dar6 1 wee7 2 zxc20 rows selected.1.查找重復記錄的幾種方法: (1).SQL>select * from cz group by c1,c10,c20 having count(*) >1;C1 C10 C20---------- ---------- ---1 2 dsf2 3 che3 4 dff(2).SQL>select distinct * from cz;C1 C10 C20---------- ---------- ---1 2 dsf2 3 che3 4 dff(3).SQL>select * from cz a where rowid=(select max(rowid) from cz where c1=a.c1 and c10=a.c10 and c20=a.c20);C1 C10 C20---------- ---------- ---1 2 dsf2 3 che3 4 dff2.刪除重復記錄的幾種方法: (1).適用于有大量重復記錄的情況(在C1,C10和C20列上建有索引的時候,用以下語句效率會很高): SQL>delete cz where (c1,c10,c20) in (select c1,c10,c20 from cz group by c1,c10,c20 having count(*)>1) and rowid not in(select min(rowid) from cz group by c1,c10,c20 having count(*)>1);SQL>delete cz where rowid not in(select min(rowid) from cz group by c1,c10,c20);(2).適用于有少量重復記錄的情況(注重,對于有大量重復記錄的情況,用以下語句效率會很低): SQL>delete from cz a where a.rowid!=(select max(rowid) from cz b where a.c1=b.c1 and a.c10=b.c10 and a.c20=b.c20);SQL>delete from cz a where a.rowid<(select max(rowid) from cz b where a.c1=b.c1 and a.c10=b.c10 and a.c20=b.c20);SQL>delete from cz a where rowid <(select max(rowid) from cz where c1=a.c1 and c10=a.c10 and c20=a.c20);(3).適用于有少量重復記錄的情況(臨時表法): SQL>create table test as select distinct * from cz; (建一個臨時表test用來存放重復的記錄)SQL>truncate table cz; (清空cz表的數據,但保留cz表的結構)SQL>insert into cz select * from test; (再將臨時表test里的內容反插回來)(4).適用于有大量重復記錄的情況(Exception into 子句法): 采用alter table 命令中的 Exception into 子句也可以確定出庫表中重復的記錄。這種方法稍微麻煩一些,為了使用“excepeion into ”子句,必須首先創建 EXCEPTIONS 表。創建該表的 SQL 腳本文件為 utlexcpt.sql 。對于win2000系統和 UNIX 系統, Oracle 存放該文件的位置稍有不同,在win2000系統下,該腳本文件存放在$ORACLE_HOMEOra90rdbmsadmin 目錄下;而對于 UNIX 系統,該腳本文件存放在$ORACLE_HOME/rdbms/admin 目錄下。 具體步驟如下: SQL>@?/rdbms/admin/utlexcpt.sqlTable created.SQL>desc exceptionsName Null? Type----------------------------------------- ROW_ID ROWIDOWNER VARCHAR2(30)TABLE_NAME VARCHAR2(30)CONSTRAINT VARCHAR2(30)SQL>alter table cz add constraint cz_unique unique(c1,c10,c20) exceptions into exceptions; *ERROR at line 1:ORA-02299: cannot validate (TEST.CZ_UNIQUE) - duplicate keys foundSQL>create table dups as select * from cz where rowid in (select row_id from exceptions); Table created.SQL>select * from dups; C1 C10 C20---------- ---------- ---1 2 dsf1 2 dsf1 2 dsf1 2 dsf2 3 che1 2 dsf1 2 dsf1 2 dsf1 2 dsf2 3 che2 3 che2 3 che2 3 che3 4 dff3 4 dff3 4 dff16 rows selected.SQL>select row_id from exceptions;ROW_ID------------------AAAHD/AAIAAAADSAAAAAAHD/AAIAAAADSAABAAAHD/AAIAAAADSAACAAAHD/AAIAAAADSAAFAAAHD/AAIAAAADSAAHAAAHD/AAIAAAADSAAIAAAHD/AAIAAAADSAAGAAAHD/AAIAAAADSAADAAAHD/AAIAAAADSAAEAAAHD/AAIAAAADSAAJAAAHD/AAIAAAADSAAKAAAHD/AAIAAAADSAALAAAHD/AAIAAAADSAAMAAAHD/AAIAAAADSAANAAAHD/AAIAAAADSAAOAAAHD/AAIAAAADSAAP16 rows selected.SQL>delete from cz where rowid in ( select row_id from exceptions);16 rows deleted.SQL>insert into cz select distinct * from dups;3 rows created.SQL>select *from cz;C1 C10 C20---------- ---------- ---1 2 dsf2 3 che3 4 dff4 5 err5 3 dar6 1 wee7 2 zxc7 rows selected.從結果里可以看到重復記錄已經刪除。
標簽: Oracle 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品大片| 欧美一区成人| 麻豆久久久久久| 午夜精品影视国产一区在线麻豆| 怡红院精品视频在线观看极品| 99精品在线观看| 91精品推荐| 91久久国产| 国产一区成人| 性欧美精品高清| 免费国产自线拍一欧美视频| 狠狠色狠狠色综合日日tαg| 欧美日韩国产一区精品一区| 一本一道久久a久久精品蜜桃| 激情欧美丁香| 激情综合网站| 久久久精品久久久久久96| 日韩在线短视频| 久久激情婷婷| 亚洲国产不卡| 久久亚洲二区| 日韩精品欧美成人高清一区二区| 日韩一区二区三区免费视频| 婷婷视频一区二区三区| 日本va欧美va精品发布| 国产欧美三级| 岛国精品一区| 久久精品亚洲人成影院| 99re国产精品| 视频在线观看一区| 91精品国产自产观看在线 | 亚洲精品在线二区| 国产欧美一区二区三区米奇| 精品日韩在线| 欧美sss在线视频| 中国女人久久久| 日韩av资源网| 水蜜桃精品av一区二区| 久久精品高清| 亚洲色图综合| 国产亚洲精品精品国产亚洲综合| 麻豆91精品91久久久的内涵| 精品久久久网| 国产高清一区二区| 日韩精品导航| caoporn视频在线| 激情欧美一区| 欧美亚洲国产日韩| 成人欧美一区二区三区的电影| 自拍日韩欧美| 日韩1区2区3区| 久久这里只有| 一区二区亚洲精品| 91成人小视频| av中文资源在线资源免费观看| 亚洲少妇在线| 精品久久精品| 亚洲精品一区二区妖精| 欧美日韩亚洲一区| 日韩一区二区三区在线免费观看| 在线看片日韩| 国产黄大片在线观看| 中文字幕一区二区三区在线视频| 麻豆国产欧美日韩综合精品二区| 精品1区2区3区4区| 精品久久网站| 热久久久久久久| 91视频精品| 亚洲五月综合| 四虎成人av| 亚久久调教视频| 亚洲精品一级二级| 日本不卡一二三区黄网| 亚洲成av在线| 国产精品毛片久久久| 日韩一级不卡| 国产一区二区三区91| 日韩一区欧美二区| 色黄视频在线观看| 国产亚洲精品美女久久 | 欧美日韩国产在线一区| 你懂的国产精品| 蜜芽一区二区三区| 久久只有精品| 亚洲精品美女91| 久久久久午夜电影| 国产精品地址| 综合激情一区| 亚洲特色特黄| 久久精品欧洲| 亚洲欧洲日韩精品在线| 神马日本精品| 精品久久美女| 国产欧美一区二区三区精品观看 | 999国产精品| 麻豆精品在线观看| 在线视频日韩| 蜜臀久久精品| 久久av超碰| 日本久久二区| 日韩中文字幕1| 日韩午夜高潮| 91成人超碰| 国产99久久| 日韩精品午夜| 日韩在线短视频| 亚洲美女久久精品| 国产精品久久久久久久免费观看 | 中文字幕亚洲精品乱码| 一区在线观看| 韩日一区二区三区| 久久久久久久久丰满| 国产一区二区三区四区二区| 蜜桃传媒麻豆第一区在线观看| 99久久久久| 蜜臀久久99精品久久久久宅男| 91精品国产调教在线观看| 国产黄色精品| 亚洲91在线| 亚洲精品动态| 日韩av免费| 国产91欧美| 国产乱人伦丫前精品视频| 亚洲欧美视频一区二区三区| 色综合狠狠操| 成人在线视频区| 国产精品白浆| 97久久亚洲| 亚洲精品韩国| 亚洲色图综合| 日本欧洲一区二区| 亚欧成人精品| 亚洲日本三级| 午夜在线精品| 国产精品88久久久久久| 国产91欧美| 国产福利一区二区三区在线播放| 久久国产精品美女| 欧美日一区二区在线观看| 免费欧美在线视频| 999国产精品| 日韩电影免费网址| jizzjizz中国精品麻豆| 久久青草久久| 伊人精品一区| 久久一区二区三区喷水| 日韩一区三区| 日韩精品dvd| 国产中文字幕一区二区三区| 日韩一区三区| 国产精品国产三级国产在线观看| 国产精区一区二区| 久久精品 人人爱| 日韩综合一区二区| 婷婷精品在线观看| 日韩欧美中文字幕一区二区三区| 久久亚洲图片| 亚洲制服一区| 欧美中文一区| 国产精品亚洲成在人线| 日韩视频一二区| 国产精品久久久久久妇女| 国产精品宾馆| 卡一卡二国产精品| 久草免费在线视频| 久久久久久夜| 亚洲美女久久精品| 91成人精品视频| 日韩在线卡一卡二| 日韩精品成人在线观看| 中文在线日韩| sm捆绑调教国产免费网站在线观看 | 欧美91精品| 国产综合精品一区| 久久久久午夜电影| 亚洲激情五月| 亚洲影院天堂中文av色| 亚洲三级网站| 日韩精品亚洲专区| 国产日本久久| 欧美韩日一区| 国产一区日韩一区| 夜久久久久久| 日韩高清二区| 欧美xxxx性| 欧美日韩国产欧| 中文字幕av一区二区三区四区| 久久精品 人人爱| 国产成人77亚洲精品www| 欧美91视频| 日韩av中文字幕一区| 国产在线一区不卡| 91精品蜜臀一区二区三区在线| 亚洲欧美日韩国产一区二区| 日本国产欧美| 激情不卡一区二区三区视频在线| 亚洲欧洲一区二区天堂久久| 日韩在线黄色| 四虎成人av| 蜜臀精品一区二区三区在线观看|