Oracle分页查询(面试考点)

Oracle 有一个关键字:rownum,它相当于系统给分配的一列。

  • rowid与rownum虽都被称为伪列,但它们的存在方式是不一样的;
  • rowid是物理存在的,表示记录在表空间中的唯一位置ID,在DB中是唯一的。只要记录没被搬动过,rowid是不变的;
  • rowid相对于表来说又像表中的一般列,所以,以rowid为条件就不会有rownum那么莫名其妙的结果出现;
  • rownum是真正的伪列,不管是数据库中物理表,还是嵌套子查询都会有rownum这个伪列,rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum又成了1;
  • 另外还要注意:rownum不能以任何基表的名称作为前缀。

那么,如何使用oracle分页,查询第6条到第10条数据呢,我们直接写两个例子:

  1. select * from (select e.*,rownum m from emp e where rownum <= 10)where m >= 6;
  2. select * from (select e.*,rownum m from emp e )em where em.m <= 10 and em.m >= 6;

运行结果如下:

可以看淡,第二种方法更高效一些,所以推荐第二种写法。

 

更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java Punk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值