【正文】
rom cz b where = and = and =)。 c1 c10 c20 1 2 dsf 2 3 che 3 4 dff(3).sqlselect * from cz a where rowid=(select max(rowid) from cz where c1= and c10= and c20=)。重復(fù)記錄判斷的標(biāo)準(zhǔn)是:c1,c10和c20這三列的值都相同才算是重復(fù)記錄。ORACLE中刪除重復(fù)記錄平時工作中可能會遇見當(dāng)試圖對庫表中的某一列或幾列創(chuàng)建唯一索引時,系統(tǒng)提示 ora01452 :不能創(chuàng)建唯一索引,發(fā)現(xiàn)重復(fù)記錄。經(jīng)查看表cz總共有16條記錄:sqlset pagesize 100sqlselect * from cz。 c1 c10 c20 1 2 dsf 2 3 che 3 4 dff:(1).適用于有大量重復(fù)記錄的情況(在c1,c10和c20列上建有索引的時候,用以下語句效率會非常高):sqldelete 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)。sqldelete from cz a where rowid (select max(rowid) from cz where c1= and c10= and c20=)。 (再將臨時表test里的內(nèi)容反插回來)(4).適用于有大量重復(fù)記錄的情況(exception into 子句法):采用alter table 命令中的 exception into 子句也能確定出庫表中重復(fù)的記錄。具體步驟如下:sql?/rdbms/admin/table created.sqldesc exceptions name