select * from xxx where rowid in(
select rid from (
select rownum rn, rid from(
select rowid rid, id from xxx order by id desc
) where rownum<10
) where rn>0
) order by id desc;
--性能最好
select t2.* from (select rownum rowno, t1.* from (
select *from xxx
) t1 where rownum <= 10 ) t2 where (rowno >0)
--性能次之
select * from (
select t.*, row_number() over(order by id desc) rk from xxx t
) where rk<10 and rk>0;
--性能最差
限定范围100条数据,并查询出这100条的rownum,然后再选择50到100的数据
select * from
(select t.*,rownum num from DATA_TABLE_SQL t where rownum<=100 )
where num>50