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.456SQL> 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);
delete from (select * from test_tab order by rownum desc ) where rownum<11
你试试,应该可以,操作之前最好做个备份,预防...
2 ; NUM
----------
1.23
1
1.456SQL> 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);