ORACLE--分页查询

1 分页(分段)查询

分页查询就是将查询表中的数据时进行分段,而不是一次性把所有的数据都查询出来,有时候查询的数据量非常大,会导致系统资源消耗大,响应速度慢,数据冗余严重,为此遇到这种情况一般就使用分页查询解决,数据库基本都支持分页,但是不同的数据库语法不同。
ORACLE中的分页是基于伪列ROWNUM实现的,为查询出来的每一行数据都编个行号。ROWNUM不存在任何一张表中,但是所有的表都可以查询这个字段,这个字段的值是随着查询自动生成的。
方式:每当可以从表中查询出一条记录的时候,那么这个字段的值为该条记录的行号,从1开始的,依次递增。
SELECT ROWNUM,empno,ename,sal,job FROM emp;

SELECT ROWNUM,empno,ename,sal,job FROM emp WHERE ROWNUM >1;–没有数据
SELECT ROWNUM,empno,ename,job,sal FROM emp WHERE ROWNUM BETWEEN 6 AND 10; --没有数据
在使用ROWNUM对结果集进行编号的查询过程中不能够使用ROWNUM做大于1以上的判断,因为ROWNUM第一次查询的时候,此时ROUNUM=1,WHERE过滤条件不成立,就没有对第一行进行编号。依次向下推理,编号都不成立,就无法查询出一条数据。等于1就只有第一条数据,>0没有什么意义。

解决方法:1先使用ROWNUM进行编号,对结果集当做表
2对结果集里面的编号字段名(ROWNUM)进行过滤
但是此时要对结果集中ROWNUM添加别名,否则不写别名的话计算机会把过滤条件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值