oracle删除10条后的记录

Posted on 2016-06-25 17:48  上善其若水,厚德载物  阅读(1054)  评论(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)

Copyright © 2024 上善其若水,厚德载物
Powered by .NET 9.0 on Kubernetes