oracle删除重复记录保留一条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle删除重复记录保留一条相关的知识,希望对你有一定的参考价值。

表名称org_organization_user表字段名称emp_id,org_id.,分别为employee表和org表主键,可能我写错java代码了,循环插入了很多条重复记录,请问怎么删除,只保留一条记录

参考技术A DELETE from org_organization_user 
WHERE (emp_id,org_id) IN ( SELECT emp_id,org_id FROM org_organization_user GROUP BY emp_id,org_id HAVING COUNT(*) > 1) 
AND ROWID NOT IN (SELECT MIN(ROWID) FROM org_organization_user GROUP BY emp_id,org_id HAVING COUNT(*) > 1);

 删除表中多余的重复记录,重复记录是根据字段(emp_id,org_id)来判断,只留有rowid最小的记录 

参考技术B create table org_organization_user_tmp
as select distinct emp_id,org_id from org_organization_user;

delete from org_organization_user;

insert into org_organization_user select  emp_id,org_id from org_organization_user_tmp;

本回答被提问者采纳

以上是关于oracle删除重复记录保留一条的主要内容,如果未能解决你的问题,请参考以下文章

Oracle删除重复记录只保留一条数据的几种方法

笔记:Oracle查询重复数据并删除,只保留一条记录

Oracle删除重复记录只保留一条数据的几种方法

oracle数据库查询去除重复的记录,保留其中的某一条

删除oracle 表中重复数据sql语句保留rowid最小的一条记录

oracle删除重复的行怎么删啊