ORACLE 分页SQL

这个sql的分页很简单,但是由于十分常用,且通常用于查询大量数据的情况。

SELECT * FROM(

SELECT A.*,ROWNUM RN

FROM

(SELECT * FROM TABLE_XX ) A

WHERE ROWNUM<=20

)  TL

WHERE RN >=11

这个sql高效的原因在于优化模式下,

Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。

故此查询中,查询条件WHERE ROWNUM<=20就可以被Oracle推入到内层查询中,

这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询,将结果返回。

http://www.cnblogs.com/wulouhua/p/4528548.html

时间: 2024-11-07 20:37:06

ORACLE 分页SQL的相关文章

ORACLE分页SQL

1,使用rownum SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 2,使用between SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A ) WHERE RN BETWEEN 21 AND 40 ORACLE分页SQL,布布扣,b

mybatis oracle分页sql

以前在写oracle分页时的sql是: (1) select *     from  (select a.*, rownum rnum      from (select id, data      from t  order by id, rowid) a     )    where rnum >= 148 and rnum<=151; 或者 (2) select *     from  (select a.*, rownum rnum      from (select id, data

在mybatis 采用mapping文件 中的 oracle分页 SQL 配置在一个公用mapping中供后面引入使用

1.在mybatis的公共mapping中添加下面设置 三层嵌套方式和用 row_number的方式都能到达效果,但是性能优劣众说纷纭我没亲自测试过. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-m

ORACLE分页SQL语句三种分页技术

1.根据ROWID来分select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from t_xiaoxi  order by cid desc) where rownum<10000) where rn>9980) order by cid desc;执行时间0.03秒 2.按分析函数来分select * from (select t.*,row_

oracle分页sql语句

select * from(select a1.*, rownum.rn from(select *from emp) a1 where rownum<=10) where rn>=6; select * from(select a1.*, rownum.rn from(select *from emp) a1 where rownum<=10) where rn>=6;

ORACLE分页SQL语句(转载)

1.根据ROWID来分select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from t_xiaoxi  order by cid desc) where rownum<10000) where rn>9980) order by cid desc;执行时间0.03秒2.按分析函数来分select * from (select t.*,row_n

二十六、oracle pl/sql 分页

一.无返回值的存储过程 古人云:欲速则不达,为了让大家伙比较容易接受分页过程编写,我还是从简单到复杂,循序渐进的给大家讲解.首先是掌握最简单的存储过程,无返回值的存储过程. 案例:现有一张表book,表结构如下:书号.书名.出版社. CREATE TABLE book( ID NUMBER(4), book_name VARCHAR2(30), publishing VARCHAR2(30)); 请写一个过程,可以向book表添加书,要求通过java程序调用该过程. --注意:in->表示这是一

oracle pl/sql 分页

一.无返回值的存储过程 古人云:欲速则不达,为了让大家伙比较容易接受分页过程编写,我还是从简单到复杂,循序渐进的给大家讲解.首先是掌握最简单的存储过程,无返回值的存储过程. 案例:现有一张表book,表结构如下:书号.书名.出版社. CREATE TABLE book( ID NUMBER(4), book_name VARCHAR2(30), publishing VARCHAR2(30)); 请写一个过程,可以向book表添加书,要求通过java程序调用该过程. --注意:in->表示这是一

MySQL、Oracle和SQL Server的分页查询语句

原文地址:http://www.cnblogs.com/ginponson/p/5746435.html 假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询 SELECT * FROM student LIMIT (PageNo - 1) * PageSize,PageSize; 理解:(Limit n,m)  =>从第n行开始取m条记录,n从0开始算. 2.Oracel的分页查询