删除数据表中的重复记录

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

删除交通违章数据表中的重复记录(同一时间[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

)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航