Board logo

标题: oracle查询重复数据与删除重复记录方法 [打印本页]

作者: easthome2002    时间: 2012-5-31 11:13     标题: oracle查询重复数据与删除重复记录方法

比如现在有一人员表 (表名:peosons)
    若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来
    select p1.*
    from persons p1,persons p2
    where p1.id<>p2.id
    and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address
   用rowid方法可以实现上述效果。
据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:
    查数据:
    select * from table1 a where rowid !=(select max(rowid)
    from table1 b where a.name1=b.name1 and a.name2=b.name2……)
    删数据:
    delete  from table1 a where rowid !=(select max(rowid)
    from table1 b where a.name1=b.name1 and a.name2=b.name2……)
作者: aijiazhangli    时间: 2012-7-24 14:20

oracle培训必讲的内容之一。数据库的增删改查是所有数据的核心。




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0