如何删除oracle库中相同的记录

  • 如何删除oracle库中相同的记录,但是保留重复记录中的一条记录:
  • 解决方法:可以利用oracle中的rowid伪列来达到这个目的:

  • 1.建立临时表,并将查询到的重复数据插入其中(是否可以建一个视图?):
  • create table temp_woods as
  • (select item_id,count(*) as rowcount from wooods group by item_id having count(*) > 1 );

  • 2.查询相同的纪录:
  • select a.*,a.rowid from woods a where a.rowid <> (select max(b.rowid) from woods b where b.item_id in (select item_id from temp_woods) where b.item_id = a.item_id) ;

  • 3.删除重复的记录并保留其中rowid列最大的纪录:
  • delete from woods a where a.rowid <> (select max(b.rowid) from woods b where b.item_id in (select item_id from temp_woods) where b.item_id = a.item_id) ;

  • 4.删除临时表:
  • drop table temp_woods cascade constraints ;


  • 文章名称:如何删除oracle库中相同的记录
    网页地址:http://hxwzsj.com/article/pdoced.html

    其他资讯

    Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
    友情链接: 成都网站设计制作公司 成都企业网站建设公司 成都网站建设公司 品牌网站建设 成都网站建设公司 手机网站设计 成都网站设计 重庆网站制作 梓潼网站设计 网站建设 响应式网站建设 品牌网站建设 专业网站建设 成都响应式网站建设 高端网站设计 四川成都网站制作 达州网站设计 高端网站建设 网站建设 app网站建设 成都网站设计 四川成都网站设计