使用:rownum关键字:oracle对外提供的自动给查询结果编号的关键字,与每行的数据没有关系。

        --注意:rownum关键字只能做< <=的判断,不能进行> >=的判断

 select rownum ,e.* from emp e;

      --查询员工信息的前5条数据 第一页数据

 select rownum r,e.* from emp e where rownum <=5;

      select * from (select rownum r,e.* from emp e where rownum <=5) t where r>0;

      --查询员工信息的6-10条数据 第二页数据

  select rownum r,e.* from emp e where rownum <=10;

      select rownum,t.* from (select rownum r,e.* from emp e where rownum <=10) t where r>5;

      --查询员工信息的11-15条数据 第三页数据   

select rownum r,e. * from emp e where rownum<=15;

      select * from (select rownum r,e. * from emp e where rownum<=15) t where r>10;

      --分页规律总结:每页显示m条数据,查询第n页数据 

  select * from (select rownum r,e. * from 要分页的表 e where rownum<=m*n) t where r>m*n-m ;

      --要分页的表既可以是真实的表,也可以是一个查询语句

      --分页查询员工信息按照工资排序

   select * from (select rownum r,t.* from (select * from emp  order by sal) t where rownum<=10 ) where r>5
常用关系数据库分页SQL都是不相同的,不过大同小异

下面是Oracle分页简单事例图片以及代码:

1、普通查询:

select*fromtable_Nametorderbyactive_countdesc;

2、查询第一条记录:

select*

from(select*fromtable_Nameorderbyactive_countdesc)

whererownum=1;

3、查询前3条:类似Sqlserver中的TOP3

select*

from(select*fromtable_Nameorderbyactive_countdesc)

whererownum<=3;

4、查询第2至第3条记录:

select*

from(selectt.*,rownumasno

from(select*fromtable_Nameorderbyactive_countdesc)t)

wherenobetween2and3

5、在TOP3条记录的基础上查询第2至第3条记录:

select*

from(selectt.*,rownumasno

from(select*fromtable_Nameorderbyactive_countdesc)twhererownum<=3)

wherenobetween2and3

6、查询第2条以后的记录:

select*

from(selectt.*,rownumasno

from(select*fromtable_Nameorderbyactive_countdesc)t)

whereno>=2

解释:

rownum是在已产生数据的基础上伪生成的编号,所以使用rownum必须在已有数据的基础上,因此Oracle分页才加入了多个子查询。

上一篇:linux下的rpm安装包和rpm命令的使用及
下一篇:三重缓冲有必要开吗三重缓冲

瑞文文摘站内查询

组合中点盘太阳与月亮(合...

紫微星座运势查询,科技...

紫微今日运势查询,紫微...

最准确的老黄历看日子下...

最准确的月亮星座查询,...

最准确的月亮星座查询表...

试析多元智能理论茬体育...

旅游英语推进邢台市旅游...

浅谈岗位廉洁教育的方法与途径【3858字】

信息技术茬旅游专业教學...

PF--1415反击式破碎机箱体设计开题报告

羟肟类萃取剂对嗜酸氧化...

湖南长沙市生育津贴政策...

浅议体态律动在小学音乐课堂教学中的运用

摩羯座运势2022,摩羯座...

基于中频信号的家用治疗...