from (select *
from (select /*+ index_desc(t,idx_dec_1) */
t.*,rownum rn
from T_FXZF t
where /*reachdate >=20150516 and reachdate <= 20150529 and*/
t.detectstationtype in (2,3,1))
where rownum <= 40)
where rn > 20;
这算是比较标准的Oracle分页语句,性能不会差,如果使用between and 或者<和>号都会出现问题,一个是速度慢,二是往后翻页时会出现出不来数据。
使用这个语句是得益于不同结果集中rownum虚列的强大效率。