Oracle--重复记录

 开发者博客www.developsearch.com

 

 

查出重复记录

SQL》 select rowid,bm,mc from a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);

ROWID BM MC

------------------ ---- --------------------

000000D5.0000.0002 1111 1111

000000D5.0001.0002 1112 1111

000000D5.0002.0002 1113 1111

000000D5.0003.0002 1114 1111

 

 

删除重复记录

SQL》 delete from a a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);

删除4个记录。

SQL》 select rowid,bm,mc from a;

ROWID BM MC

------------------ ---- --------------------

000000D5.0004.0002 1111 1111

000000D5.0005.0002 1112 1111

000000D5.0006.0002 1113 1111

000000D5.0007.0002 1114 1111

 

 

根据单个属性字段判断重复性:

select * from tableName

 where columnName in (select columnName  from tableName

       group by columnName having count(columnName) > 1);

 

 

根据多个属性字段判断重复性:

select *  from tableName a

 where (a.columnName1, a.columnName2) in (select columnName1, columnName2

    from tableName  group by columnName1, columnName2 having count(*) > 1);

 

 

所有属性完全相同的情况:

select distinct * from td_tyorg;

 

 

删除某个字段相同记录(只留下rowid最小的记录,其中rowid为oracle系统自建的字段):

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);

 

 

删除表中多余的重复记录(多个字段),只留有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);

 

 

 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct *

  into #Tmp

  from tableName drop table tableName

        select * into tableName from #Tmp drop table #Tmp

 

 

找出在表product中字段product_id和saler_id中重复的记录?  

 

  即product_id               saler_id  

  -----------------------------  

        22                                   aa  

        22                                   aa  

        33                                   aa  

        44                                   aa  

        55                                   bb  

        55                                   bb  

        66                                   bb  

        77                                   bb  

   

如何查出product_id重复的记录!

select   product_id   from   product  

group   by   product_id,saler_id   having   count(*)>1

 

 开发者博客www.developsearch.com

 


 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值