oracle分页思想
2017-12-15 14:13
155 查看
我们项目中经常会用到分页的sql,下面我来总结下oracle分页的sql及思路
我们mysql处理分页时候有个关键字是limit,但是oracle中没有,那么oracle中是如何使用分页的呢?
oracle有一个伪列,叫rownum,翻译成中文就是行号的意思,也就是说oracle是用这个去控制所查询的条数
举例:
Student 表
id name
这章学生表,字段有两个,我们查询的时候需要所谓的序号或者说是行号,我们这个时候就需要oracle的伪列rownum
我们相当于创建一个新表,新表的sql如下
SELECT
T.*,
ROWNUM RN
FROM
STUDENT T
------------------------------------------------------------------------------------------
这样我们就组成一个新表,新表中有三个字段
id name rownum
组成这个新表的话,我们就可以根据新的列rownum去控制我们需要的那几行
这样就组成新的分页查询语句
SELECT
*
FROM(
SELECT
T.*,
ROWNUM RN
FROM
STUDENT T
)T1
WHERE
T1.RN<=3
AND
T1.RN>=1
我们mysql处理分页时候有个关键字是limit,但是oracle中没有,那么oracle中是如何使用分页的呢?
oracle有一个伪列,叫rownum,翻译成中文就是行号的意思,也就是说oracle是用这个去控制所查询的条数
举例:
Student 表
id name
11111 | 学生一 |
22222 | 学生二 |
33333 | 学生三 |
44444 | 学生四 |
55555 | 学生五 |
66666 | 学生六 |
我们相当于创建一个新表,新表的sql如下
SELECT
T.*,
ROWNUM RN
FROM
STUDENT T
------------------------------------------------------------------------------------------
这样我们就组成一个新表,新表中有三个字段
id name rownum
11111 | 学生一 | 1 |
22222 | 学生二 | 2 |
33333 | 学生三 | 3 |
44444 | 学生四 | 4 |
55555 | 学生五 | 5 |
66666 | 学生六 | 6 |
这样就组成新的分页查询语句
SELECT
*
FROM(
SELECT
T.*,
ROWNUM RN
FROM
STUDENT T
)T1
WHERE
T1.RN<=3
AND
T1.RN>=1
相关文章推荐
- JVM虚拟机内存及垃圾收集
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle Autonomous Linux:用于云计算的自我更新、自我修补的 Linux 发行版
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- oracle的nvl函数的使用介绍
- oracle执行update语句时卡住问题分析及解决办法
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累