利用oracle rowid查询重复数据,只保留一条rowid最小的
select a.*, rowid
-- delete
from 需要查询重复记录的表 a
where a.rowid <> (select min(rowid)
from 需要查询重复记录的表 b
where a.关联字段 = b.关联字段)
说明
- 需要查询重复记录的表a和b都是同一张表,只是取了不同的别名,以示区别
- 由于oracle表中rowid是唯一的,因此把rowid作为唯一键
- 通过以上SQL查询出来的数据是rowid最小的记录
- 添加delete,把查询出来的数据全部删除
文章评论