oracle 查询重复数据并且删除,重复数据只保留一条
应用场景:
数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据,只保留正确的数据
一:重复数据根据单个字段进行判断
1、首先,查询表中多余的数据,由关键字段(name)来查询。
select * from OA_ADDRESS_BOOK where name in (select name from OA_ADDRESS_BOOK group by name having count(name)>1)
2、删除表中重复数据,重复数据是根据单个字段(Name)来判断,只留有rowid最小的记录
delete from OA_ADDRESS_BOOK where (Name) in
(select Name from OA_ADDRESS_BOOK group by Name having count(Name) >1)
and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name having count(Name)>1)
二:重复数据根据多个字段进行判断
1、首先,查询表中重复数据,由关键字段(Name,UNIT_ID)来查询。
select * from OA_ADDRESS_BOOK book1 where (book1.name,book1.unit_id) in
(select book2.name,book2.unit_id from OA_ADDRESS_BOOK book2 group by book2.name,book2.unit_id having count(*)>1)
2、删除表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,只留有rowid最小的记录
delete from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in
(select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count() > 1)
and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count()>1)
3、查询表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,不包含rowid最小的记录
select name,unit_id from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in
(select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count() > 1)
and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count()>1)
————————————————
版权声明:本文为CSDN博主「zp8086」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010069853/article/details/53517895
- 点赞
- 收藏
- 分享
- 文章举报
- oracle 查询重复数据并且删除, 只保留一条数据的SQL语句
- oracle 查询重复数据并且删除, 只保留一条数据
- oracle 查询重复数据并且删除, 只保留一条数据
- oracle 查询重复数据并且删除, 只保留一条数据
- oracle 查询重复数据并且删除, 只保留一条数据
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- 笔记:Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- 笔记:Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- oracle 快速移动数据和删除重复数据但保留其中一条数据
- MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
- oracle删除重复数据并只保留一条数据
- Oracle删除重复记录只保留一条数据的几种方法