ORACLE中SQL分页语句

作者:袖梨 2022-06-29

最常用的是方法一:

 代码如下 复制代码

select * from (select ROWNUM as rn, Src.* from tab Src) DataSet Where rn> 10 and rn< 20

方法二:

select * from (select ROWNUM as rn, Src.* from tab where rownum <= 150) where rn >= 100;


结果发现由于该语句会先生成rownum 后执行order by 子句,因而排序结果根本不对,后来在GOOGLE上搜到一篇文章,原来多套一层select 就能很好的解决该问题,特此记录,语句如下:

 代码如下 复制代码

select * from

(select a.*,rownum row_num from

(select * from mytable t order by t.id desc) a

) b where b.row_num between 1 and 10

相关文章

精彩推荐