Oracle分页实现原理
来源:互联网 发布:win 写的java导入到mac 编辑:程序博客网 时间:2024/06/17 00:42
参考于:http://blog.csdn.net/anxpp/article/details/51534006
Oracle中的表,除了我们建表时设计的各个字段,其实还有两个字段(此处只介绍2个),分别是ROWID(行标示符)和ROWNUM(行号),即使我们使用DESCRIBE命令查看表的结构,也是看不到这两个列的描述的,因为,他们其实是只在数据库内部使用的,所以也通常称他们为伪列(pseudo column)。
对于分页,我们只要想办法可以查询到从某一起始行到终止行就可以的,分页的逻辑可以放到程序里面。于是,我们理所当然会想到如下语句查询第2页的数据(每页2条数据,页码从1开始,所以起始行的行号为 (页码-1)*每页长度+1=3,终止行的行号为 页码*每页长度=4)。
Oracle分页语句:
select * from temp > 2
该sql查询不到任何信息,因为oracle 中数据行rownum是中1 开始的, 既然找到了原因,解决方法也就很明显了,我们只要将行号查询出来生成一个结果集,然后再从这个结果集中,选择行号大于我们设定的那个值就可以了,上面的分页查找正确的写法应该是这样:
内层控制需要查询多少行的数据
外层 控制 从内层查询显示到的数据最小行数
> Select 字段1,字段2 From 表名( select rownum as rn, a.* from a where rownum> <= 5 )aa where aa.rn >1
阅读全文
0 0
- Oracle分页实现原理
- oracle rownum 原理及分页查询实现
- oracle分页查询原理
- oracle数据库分页原理
- mySql与oracle分页技术原理与实现
- hibernate分页实现原理
- PHP分页实现原理
- mybatis分页原理实现
- Oracle实现分页
- oracle实现分页
- Oracle分页实现
- oracle实现分页
- Oracle分页实现
- oracle怎么实现分页
- MyBatis分页实现 - Oracle
- Oracle实现分页
- Oracle分页完美实现
- oracle怎么实现分页
- java容器
- git,svn,github,码云之间联系区别
- 大型网站技术架构笔记-第1篇 概述(3)
- VS2010 EntityFrame跨数据库
- iOS Runtime详解之SEL,Class,id,IMP,_cmd,isa,method,Ivar
- Oracle分页实现原理
- 软件定时器
- winForm改写到WPF的一些常见变化
- SpringBoot中,RestTemplate中文乱码解决方案
- 启动另一个应用
- ELK:kibana使用的lucene查询语法
- linux知识点随时补充
- 通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
- GridView控件实现分页功能