oracle选择数据并排序后删除100行以后的数据,求SQL语句,谢谢.

比如表名叫TABLE_NAME, 列名分别是C1,C2。
现在我需要这样的SQL语句:
1.按C1降序排列;
2.取排列后表的100行以后的数据,并删除100行以后其中C2大于1的行。

谢谢大家帮忙!

第1个回答  2016-07-07
取值

select C1,C2 from (select rownum rw, C1,C2 from TABLE_NAME order by C1 desc ) where rw>100 ;
删除
delete from TABLE_NAME where C1 in (select C1 from (select rownum rw, C1,C2 from TABLE_NAME order by C1 desc ) where rw>100 and C2>1);
第2个回答  2016-07-07
select *
from (select * from TABLE_NAME order by c1 asc)
where rownum <= 100追问

取100行以后的数据,不是前100行。
并且取了之后,再删除其中C2大于1的行。

追答

select *
from (select * from TABLE_NAME order by c1 asc)
where rownum > 100
TABLE_NAME中主键值或唯一索引值吗?

本回答被网友采纳
相似回答