有一个表a ,表内有100行数据,我想删除最后的10,请问如何实现?
delete from (select * from test_tab order by tab_id desc ) where rownum<10
我觉得需要添加一个字段存储插入时间。
delete from (select * from test_tab order by rowid desc ) where rownum<10
以前好象做过这样的题:
delete from (select * from test_tab order by rownum desc ) where rownum<11
你试试,应该可以,操作之前最好做个备份,预防...
楼上的方法可以一试
SQL> select * from a
2 ;
NUM
----------
1.23
1
1.456
SQL> select last_value(num) over(order by rownum desc) from a;
LAST_VALUE(NUM)OVER(ORDERBYROW
------------------------------
1.456
1
1.23
哪么你的表假如有主键num,就可以写成以下
delete from a where num in (select num from (select last_value(num) over(order by rownum desc) from a) where rownum<=10);