-------------------------问题提出----------------------------
比如有一个表test
desc test
名称 类型
ID NUMBER
NAME VARCHAR2(20)
AGE NUMBER
要选出其中按age降序排列后的2-4行
--------------------------解答----------------------------
第一步, 解决降序:
select o.* from test o order by o.age desc
第二步, 行数小于4:
select t1.*, rownum rm
from (select o.* from test o order by o.age desc) t1
where rownum < 5
其中为rownum取别名并查询出来的原因是oracle分页时, rownum不支持大于计算, 这里相当于把rownum的值放到一个表t1中了,绕开了这个限制
第三步, 行数大于2:
有了第二步中的处理, 这里只要再简单嵌套一下就行了
select *
from (
select t1.*, rownum rm
from (select o.* from test o order by o.age desc) t1
where rownum < 5
)
where rm > 1
--------------------------------总结----------------------------------
1. oracle分页时, 是使用rownum进行的
2. rownum 不能进行大于运算, 在进行rownum 小于运算时用别名将rownum查询出来再进行大于运算
3. 将其中2和4 转换成 firstIndex 和 lastIndex 就可以分页了
分享到:
相关推荐
oracle分页查询语句sql
oracle分页查询并返回总记录数据的存储过程
ORACLE分页查询效率
Oracle分页查询Oracle分页查询Oracle分页查询Oracle分页查询
msql和oracle分页查询语句笔记
解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题
本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题。
Oracle分页查询(很不错的介绍) 保证不会让你失望
Oracle分页查询语句的学习和示例演练
ORACLE分页查询SQL语法,学学习习。学习
java实现oracle分页策略完整版,可当做参考类使用,有详细注释,适合初学者。
分页查询是Oracle数据库比较重要的一个知识点!希望这个对你有参照作用。
使用数据库时有时我们会需要分页查询,但是在oracle中使用查询条件时又不可以使用大于号>。