阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle数据库的分页

112次阅读
没有评论

共计 874 个字符,预计需要花费 3 分钟才能阅读完成。

Oracle 的分页

Oracle 支持一个关键字 ROWNUM,ROWNUM 是一个伪列,该列不存在于任何一张表中,但是每张表都可以查询该列。

而该列在结果集的中值是结果集中每条记录的 ” 行号 ”ROWNUM 给结果集编号是在查询的过程中进行的,只要可以从表中查询出一条记录,该记录的行号就会作为这条记录 ROWNUM 字段的值。

ROWNUM 从 1 开始递增。由于 ROWNUM 从 1 开始,所以在第一次查询表中数据进行编号时,不要使用 ROWNUM 做大于 1 以上的数字判断,否则查询不到数据:

 1、示例 

使用 ROWNUM 做大于 1 的判断,无结果

-- 不能对 ROWNUM 使用 >(大于或等于 1 的数值)、>=(大于或等于 2 的数值)、=(大于 1 的数值),否则无结果 
-- 所以直接用只能从 1 开始
-- rownum >1 没有记录,因为第一条不满足去掉的话,第二条的 rownum 又成了 1,所以永远没有满足条件的记录。


SELECT
ROWNUM, il.* FROM installation il WHERE ROWNUM > 1

Oracle 数据库的分页

2、三种分页方式

2.1  分页一

select *
  from (select a1.*, rownum rn
          from (select * from installation) a1
         where rownum <= 5)
 where rn >= 2

Oracle 数据库的分页

2.2  分页二

select a1.*
  from (select il.*, rownum rn from installation il where rownum <= 5) a1
 where rn >= 3;

Oracle 数据库的分页

2.3   分页三

select a1.*
  from (select il.*, rownum rn from installation il) a1
 where rn between 3 and 5;

Oracle 数据库的分页

在使用过程中,发现第三种分页方式效率明显太差,原因下回再分析,实际项目中,一般都使用第一种方法。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-11/148848.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计874字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中