必威体育Betway必威体育官网
当前位置:首页 > IT技术

Oracle的rownum和分页

时间:2019-10-07 17:15:44来源:IT技术作者:seo实验室小编阅读:62次「手机版」
 

rownum

--------------------------------------------oraclerownum和分页--------------------------------------------------

Rownum

ROWNUM:表示行号,实际上此是一个列,但是这个列是一个伪列,此列可以在每张表中出现。

范例:查询emp表带有rownum列

selectrownum, t.* from emp t

我们可以根据rownum来取结果集的前几行,比如前5行

但是我们不能取到中间几行,因为rownum不支持大于号,只支持小于号,如果想                 实现我们的需求怎么办呢?答案是使用子查询,也正是oracle分页的做法。

select *

from (selectrownum rm, a.* from (select * from emp) a whererownum < 11) b where b.rm > 5

代码示例:

select rownum, t.* from emp t; --使用rownum来显示行号

select rownum, t.* from emp t where rownum<6; --使用rownum来限制查找的行数

--rownum是不支持大于号的,所以下面的这种分页方式是错误的

select rownum ,t.* from emp t where rownum>5 and rownum < 11;

--分页步骤

--第一步查询全量的数据

select * from emp;

--第二步以第一步的结果集作为一张表,限定条件是rownum小于结束行,结果列把rownum作为结果集

select rownum rw, a.* from (select * from emp) a where rownum < 6;

--第三步以第二步的结果集作为一张表,限定条件是第二步的rownum列大于开始行号,结果是*

select *

from

(select rownum rw, a.* from

(select * from emp) a --其实第一步是可以省略的,但是在实际开发中会限制条件查询,使用这三步操作会更加方便

  where rownum < 11) b

where b.rw > 5;

/*

pageno:当前的页码

pageSize:每页的记录数

pageNo      pageSize      startNum        endNum

  1            5              1             6  

  2            5              5             11

  3            5              10            16

  已知pageNo和pageSize数计算startNum和endNum的公式

  startNum = (pageNo - 1) * pageSize

  endNum = (pageNo * pageSize) + 1

*/

相关阅读

天猫双11 LOGO源文件合集AI素材文件分享

天猫双11 LOGO源文件合集,包括有双11基础logo、双11横版logo、双11来啦logo、双11简化logo、双11纯中文版logo(会场、产品、活动无

临时邮箱,24小时邮箱,10分钟邮箱推荐

临时邮箱,24小时邮箱,10分钟邮箱推荐 https://www.linshiyouxiang.net/测试了所有临时邮箱网站,这个是速度最快的,界面也是最漂亮的。

分享经济为何崛起?哪些行业又不适用分享经济?

技术的进步使“协同消费” (collaborative consumption)变得更可行了,这种消费方式可让消费者无需拥有自己的汽车、无需拥有度假屋、

经验分享:ERP系统营销规则引擎

文章基于作者自身经验,从产品层面分享了营销规则引擎从0到1的设计逻辑,一起学习下。为提高文章可读性,先拆解标题说明文章讲述内容:ER

「Why-What-How」:数据分析的基本方法论

2017.12.3受「水滴互助」的朋友相邀,分享了个人在数据分析领域的一些基本方法论。数据产品以沉淀数据分析思路为基本点,这两个领域

分享到:

栏目导航

推荐阅读

热门阅读