利用oracle rowid查询重复数据,只保留一条

2018-11-18 1659点热度 0人点赞 0条评论

利用oracle rowid查询重复数据,只保留一条rowid最小的

select a.*, rowid
-- delete
  from 需要查询重复记录的表 a
 where a.rowid <> (select min(rowid)
                     from 需要查询重复记录的表 b
                    where a.关联字段 = b.关联字段)

说明

  1. 需要查询重复记录的表a和b都是同一张表,只是取了不同的别名,以示区别
  2. 由于oracle表中rowid是唯一的,因此把rowid作为唯一键
  3. 通过以上SQL查询出来的数据是rowid最小的记录
  4. 添加delete,把查询出来的数据全部删除

王显锋

激情工作,快乐生活!

文章评论