刪除交通違章數據表中的重復記錄(同一時間[haptime]、車號牌[numberplate]、處罰原因[reason]) 一、方法原理: 1、Oracle中,每一條記錄都有一個rowid,rowid在整個數據庫中是唯一的, rowid確定了每條記錄是在ORACLE中的哪一個數據文件、塊、行上。 2、在重復的記錄中,可能所有列的內容都相同,但rowid不會相同,所以只要確定出重復記錄中那些具有最大rowid的就可以了,其余全部刪除。 二、實現方法: 1、查詢重復記錄 select rowid,haptime,numberplate,reason from peccancy --delete from peccancy6 peccancy6 where peccancy.rowid != ( select max(rowid) from peccancy b where peccancy.haptime = b.haptime and peccancy.numberplate = b.numberplate and peccancy.reason = b.reason )
2、刪除重復記錄 delete from peccancy peccancy where peccancy.rowid != ( select max(rowid) from peccancy b where peccancy.haptime = b.haptime and peccancy.numberplate = b.numberplate and peccancy.reason = b.reason )