Oracle中的分页( rownum 使用 )

首先清楚–语句写的顺序:select … from… where… group by… having… order by…
–执行顺序:from… where…group by… having… select … order by…

---oracle中的分页
--rownum行号:当我们做select操作的时候,
--每查询出一行记录,就会在该行上加上一个行号,
--行号从1开始,依次递增,不能跳着走。
---emp表工资倒序排列后,每页五条记录,查询第二页。
--排序操作会影响rownum的顺序,因为是select先执行,然后再排序

select rownum,e.* from emp e order by e.sal desc

在这里插入图片描述

--如果涉及到排序,但是还是要使用rownum的话,我们可以再次嵌套查询。
select rownum,t.* from(
select rownum,e.* from emp e order by e.sal desc) t;

在这里插入图片描述

–rownum行号不能写上大于一个正数

---emp表工资倒序排列后,每页五条记录,查询第二页。
--写的顺序:select ... from... where.... group by... having... order by..
--执行顺序:from... where...group by... having.... select ... order by...
--rownum行号不能写上大于一个正数
select rownum,e.*
from(select * from emp order by sal desc) e
where rownum<11

能查出来
在这里插入图片描述

select rownum,e.*
from(select * from emp order by sal desc) e
where rownum<11 and rownum>5;

却查不出来 因为先执行的是where条件, rownum行号:当我们做select操作的时候,
–每查询出一行记录,就会在该行上加上一个行号,
–行号从1开始,依次递增,不能跳着走。小于11满足但是大于5就不满足了

在这里插入图片描述

但是可以下面这样:

select * from(
    select rownum rn,tt.* from(
           select * from emp order by sal desc
           ) tt where rownum<11) tt
where rn >5;

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值