处理Oracle中的重复记录

转载 2011年01月11日 15:13:00

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
 where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people  
 where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
 and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段)  
select * from vitae a
 where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
 where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
 and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)


5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
>select * from vitae a
 where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
 and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

 

(转载自:http://topic.csdn.net/u/20080508/10/4b56808e-ab77-4d6e-8e75-47f281e8e33c.html

anglelwq的回帖)

oracle 删除表中重复记录

oracle 删除表中重复记录
  • qq_34117825
  • qq_34117825
  • 2016年06月30日 14:11
  • 917

如何查询oracle数据库表中的重复记录

在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句:select data_guid from adam_entity_datas a where a.rowid >...
  • zj511025
  • zj511025
  • 2007年09月05日 15:37
  • 1842

oracle查询重复数据方法

SQL重复记录查询方法 2008年08月14日 星期四 21:01 SQL重复记录查询 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 sel...
  • Mick_Yang
  • Mick_Yang
  • 2014年01月16日 10:22
  • 30630

ORACLE重复记录处理

ORACLE重复记录处理已经在网上有一些简单SQL可供使用,但感觉还有改进之处。delete table1 where rowid not in (   select max(rowid) from...
  • yin138
  • yin138
  • 2011年05月04日 15:27
  • 1286

ORACLE查询删除重复记录三种方法

比如现在有一人员表 (表名:peosons) 若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来  复制代码代码如下: select p1.*    from pe...
  • qiu_x_b
  • qiu_x_b
  • 2016年11月04日 15:34
  • 3444

oracle 关于表中重复记录的处理

一、查询某个字段重复 select * from User u where u.user_name in (select  u.user_name from User u group ...
  • findsafety
  • findsafety
  • 2015年05月12日 11:09
  • 270

oracle 删除重复记录 只保留一条

在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来很多的不便,那么怎么删除这些重复没有用的数据呢?   重复数据删除技术可以提供更大的备份容量...
  • eric145
  • eric145
  • 2013年10月28日 14:19
  • 1115

Oracle删除重复记录

Oracle删除重复记录的最好的方法: DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(y.ROWID) FROM EMP y WHERE y.EMPNO ...
  • lky5387
  • lky5387
  • 2009年12月28日 10:52
  • 1472

删除表中重复数据的存储过程(带参数的)

  自己根据一位高人的修改写的存储过程,能删除表中的重复数据。exec del_same_value 表名但是有个很严重的问题。当这表中定义了不能有多个IDENTITY时,存储过程无法执行。有待解决c...
  • eclipse13
  • eclipse13
  • 2007年12月28日 09:56
  • 246

oracle查询重复记录

一、查询某个字段重复 select * from User u where u.user_name in (select u.user_name from User u group by...
  • kang649882
  • kang649882
  • 2014年12月17日 21:25
  • 351
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:处理Oracle中的重复记录
举报原因:
原因补充:

(最多只允许输入30个字)