当前位置:   article > 正文

oracle分页查询的三种常见方式_oracle 分页查询

oracle 分页查询

oracle分页查询的三种常见方式

  • 分页写法:

–分页查询一

 select *
 from   (select rownum r,e1.*
     from (select * from emp order by sal) e1
     where rownum <=8
    )
 where r >=5;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

–分页查询二

 select e1.*
 from   (select rownum r,emp.*
     from  emp  
     where rownum<=8)e1

 where r >=5;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

–分页查询三

 select e1.*
 from   (select rownum r,e1.*
     from emp) e1
     where r between 5 and 8;
  • 1
  • 2
  • 3
  • 4
  • oracle分页和mysql分页的区别:

    1.mysql分页
  select * from stu limit m, n; 
  //m = (startPage-1)*pageSize,n = pageSize
  • 1
  • 2

(1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小)
(2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10行,即第2页数据
(3)m、n参数值不能在语句当中写计算表达式,写到语句之前必须计算好值。

2.oracle分页
select * from (
select rownum rn,a.* from table_name a where rownum <= x
//结束行,x = startPage*pageSize
)
where rn >= y; //起始行,y = (startPage-1)*pageSize+1
  • 1
  • 2
  • 3
  • 4
  • 5

(1)>= y,<= x表示从第y行(起始行)~x行(结束行) 。
(2)rownum只能比较小于,不能比较大于,因为rownum是先查询后排序的,例如你的条件为rownum>1,当查询到第一条数据,rownum为1,则不符合条件。第2、3…类似,一直不符合条件,所以一直没有返回结果。所以查询的时候需要设置别名,然后查询完成之后再通过调用别名进行大于的判断。

参考链接:
1.https://www.jb51.net/article/123002.htm

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/475333
推荐阅读
相关标签
  

闽ICP备14008679号