rownum
--------------------------------------------oracle的rownum和分页--------------------------------------------------
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源文件合集,包括有双11基础logo、双11横版logo、双11来啦logo、双11简化logo、双11纯中文版logo(会场、产品、活动无
临时邮箱,24小时邮箱,10分钟邮箱推荐 https://www.linshiyouxiang.net/测试了所有临时邮箱网站,这个是速度最快的,界面也是最漂亮的。
技术的进步使“协同消费” (collaborative consumption)变得更可行了,这种消费方式可让消费者无需拥有自己的汽车、无需拥有度假屋、
文章基于作者自身经验,从产品层面分享了营销规则引擎从0到1的设计逻辑,一起学习下。为提高文章可读性,先拆解标题说明文章讲述内容:ER
2017.12.3受「水滴互助」的朋友相邀,分享了个人在数据分析领域的一些基本方法论。数据产品以沉淀数据分析思路为基本点,这两个领域