一般来说如果不排序的话比较好做 假设 分页参数为n select aa.* select ( select *,rownum rn from a where rownum<=(n+1)*100) aa where aa.rn>=n*100
如果可以按rowid排序 select b.col1, b.col2,.. .., b.coln from (select a.*, dense_rank() over(order by rowid) rn from table a) where a.rn >= 100 and a.rn < 200;
select b.col1, b.col2,.. .., b.coln from (select a.*, dense_rank() over(order by rowid) rn from table a) b where a.rn >= 100 and a.rn < 200; 忘加了第二个表名
参考:
http://www.cnblogs.com/sgsoft/archive/2004/10/23/55800.html
假设 分页参数为n
select aa.*
select (
select *,rownum rn
from a
where rownum<=(n+1)*100) aa
where aa.rn>=n*100
select b.col1, b.col2,.. .., b.coln
from (select a.*, dense_rank() over(order by rowid) rn from table a)
where a.rn >= 100
and a.rn < 200;
from (select a.*, dense_rank() over(order by rowid) rn from table a) b
where a.rn >= 100
and a.rn < 200; 忘加了第二个表名
如果排列顺序和索引一致,可以采用强制索引,对于解决排序没有问题.
如果有别的排序,可以使用row_number,至于性能如何,那就要看你的福气了.
不管是否采用存储过程什么的,都是不能在根本上解决问题的.