oracle删除10条后的记录

Posted on 2016-06-25 17:48  上善其若水,厚德载物  阅读(1078)  评论(0)    收藏  举报

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)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3