Oracle数据库分页查询的几种实现方法
没有Sql Server有top那么好用,但是Oracle含有隐藏的rownum列可以灵活使用,使实现分页效果,pageSize默认10行
方法一:
select * from test where id not in (
select id from test where rownum <= 10)
and rownum <= 10 order by id
/--此方法除去前10行数据,剩下的重新排序,选取前十行,相当于第二页显示
方法二:
SELECT * from test where rownum <= 20
minus
select * from test where rownum <= 10
/
--此方法使用关键字minus 选出两页 再排除第一页 数据 ,使其显示第二页数据
方法三:
select id ,name from(
select rownum as rowno,t.* from test t where rownum <= 20)
where rowno > 10
/--此方法把rownum直接显式保存到结果集中,然后根据rowno方便选取数据,与方法一,类似..
以上三种方法有严重的缺陷,分页一般是排序之后再分页,以上方法都没有实现排序,所以基本没有实际意义的,所以实际运用中要先排序,然后再进行分页
例如
select sno, sname, cname, degree from --最外层的table是利用rownum别名,查找出最终需求的记录(确定最小记录数)( --中间这个table是含有rownum where条件的,查找出已经排好序的最大 需求行以内记录(确定最大记录数) select sno, sname, cname , degree,rownum r from( --最里边这个是先排序后查找的table select i.sno,sname,cname,degree from score s ,info i , course c where s.sno = i.sno and c.cno = s.cno order by i.sno asc) where rownum <= 10)where r > 5 --最大记录数与最小记录数存在某种数学关系(rows = max - min),可在逻辑中使用
转载于:https://www.cnblogs.com/whytohow/p/5026343.html
Oracle数据库分页查询的几种实现方法相关推荐
- mysql long varchar2_案例:Oracle数据库long查询结果转换为varchar2类型方法的操作步骤...
天萃荷净 将Oracle数据库查询出来的long结果转换为varchar2类型数据 来自Thomas Kyte <Oracle9i/10g/11g编程艺术> 12章节中.由于long的操作 ...
- 使用oracle数据库分页查询语句,各种数据库的分页查询语句
各种数据库的分页查询语句 1.oracle数据库分页select * from (select a.*,rownum rc from 表名 where rownum=endrow) a where a ...
- oracle数据库分页查询慢,Oracle数据库中分页查询中排序及效率问题
原始未分页查询Sql代码如下: select ROWNUM rn, t.id ID, o.name YYB,u.name XM, t.MC from tZDYSX t,tuser u,lborgani ...
- Sqlserver 数据库分页查询(三种方式)
--第一种分页:sqlserver 2000-sqlserver2005 --假设:每页显示5条, 当前页:1 则查询1-5 --不等于前5条的前5条 select top 5 * from St ...
- Oracle数据库分页查询关键字rownum理解
概念及特性 rownum是oracle特有的一个关键字 不属于任何一张表,但是任何表在查询时都可以使用它,它是Oracle数据库在我们查询的时候动态给我们添加的一列,它的规律为从1开始,之后查出每一条 ...
- oracle数据库 —— 分页查询 java代码实现
分页查询的核心代码(理解这一句话很重要): prep = conn.prepareStatement("select * from (select t2.*,rownum rn from ( ...
- oracle数据库连接不稳定,Oracle数据库自连接查询的缺点及解决方法
问题:我们在Oracle数据库中,如果需求要查询出 EMP 表中的所有员工及员工对应的领导时,就需要用到自连接查询: 查询语句如下:select e.empno,e.ename,e.mgr from ...
- oracle数据库分页查询
oracle分页有通用写法,假设一页6行 select * from (select t.*,rownum from (select * from table1 where 条件 order by c ...
- oracle数据库如何写翻页_ORACLE数据库分页查询/翻页 最佳实践
ORACLE数据库分页查询/翻页 最佳实践 一.示例数据: Select Count(*) From dba_objects ; ----------------------------------- ...
最新文章
- hdu1501 dp:两个字符串能否组成新串,状态表示能,不能。
- hdoj1087 (DP--LIS)
- matlab 8.4,《DSP using MATLAB》Problem 8.42
- 【MySQL】一条查询语句在MySQL内部的执行过程
- python怎样下载numpy_python下载numpy的方法是什么
- matlab 图案 柱状图_科学网—使用matlab绘画柱状图,且使用不同的图案填充 - 时杰的博文...
- 电脑内存与地址位数的关系
- (C语言)判断数独是否正确
- Android的三种绑定方式
- 内置函数总结(待更新)C++
- 此ca根目录证书不受信任
- C盘清理(主要的大文件清理)
- 国内学生该怎么学好A-Level数学?
- springweb项目连接数据库的时候报错Access denied for user ‘cyy‘@‘192.168.56.1‘ (using password: YES)
- 国产系统独创!Linux环境完美兼容原生安卓App
- 去加拿大跟Bengio读硕vs斯坦福全奖ML博士,选哪个?
- CSP/NOIP 复赛注意点
- 11、函数进阶---装饰器
- html文字段落分割,P段落标签
- 【答学员问】 面试前加了HR的微信,可以问一些东西吗?