返回首页
当前位置: 主页 > 数据库 > Mysql教程 >

关于SQL的Oracle分页查询

时间:2019-11-21 17:37来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥
在说明Oracle分页查询之前,有一个关键词需要提及,它相当于系统给分配的一列,那便是rownum。
 
1.rowid与rownum虽都被称为伪列,但它们的存在方式是不一样的。
2.rowid是物理存在的,表示记录在表空间中的唯一位置ID,在DB中是唯一的。只要记录没被搬动过,rowid是不变的。
3.rowid相对于表来说又像表中的一般列,所以,以rowid为条件就不会有rownum那么莫名其妙的结果出现。
4.rownum是真正的伪列,不管是数据库中物理表,还是嵌套子查询都会有rownum这个伪列,rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum又成了1。
5.另外还要注意:rownum不能以任何基表的名称作为前缀。
 
那么,如何使用oracle分页,查询第6条到第10条数据呢,我们直接写两个例子:
 
select * from (select e.*,rownum m from emp e where rownum <= 10)where m >= 6;
select * from (select e.*,rownum m from emp e )em where em.m <= 10 and em.m >= 6;
运行结果如下:
可以看出,第二种方法会更加高效,因此更值得推荐。
------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
猜你感兴趣