oracle每条记录都有一个唯一的物理记录rowid,可以通过rowid作为唯一主键进行删除。

1、首先根据rownum编号

SELECT ROWID,ROWNUM RN FROM 表

2、筛选rn>=10的记录的rowid

SELECT ROWID FROM (SELECT ROWID,ROWNUM RN FROM 表) WHERE RN>=10

3、根据rowid删除第十条以及以后的记录

DELETE FROM 表 where rowid in(SELECT ROWID FROM (SELECT ROWID,ROWNUM RN FROM 表) WHERE RN>=10)

或者
delete from tb_name where rowid not in (select rowid from tb_name where rownum<10)

相关文章: