ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。通过 rowid 我们就可以高效删除重复数据啦。
--保留最早一条记录
delete from emp e
where e.rowid > (select min(x.rowid) from emp x where x.emp_no = e.emp_no);
--保留最新一条记录
delete from emp e
where e.rowid < (select max(x.rowid) from emp x where x.emp_no = e.emp_no);