Oracle分页语句

select * from (select A.*,rownum rd from (select * from [tablename] where
[condition] order by  [condition] ) A  where
rownum<=[endpage*pagesize]) where rd>=[startpage*pagesize];

1.select * from [tablename] where [condition] order by
 [condition]

按条件对数据表进行筛选排序,作为分页的基本数据

2.select A.*,rownum rd from (select * from [tablename] where [condition]
order by  [condition] ) A  where rownum<=[endpage*pagesize]

使用rownum选择小于结尾页的数据,必须对rownum采用别名

3.select * from (select A.*,rownum rd from (select * from [tablename] where
[condition] order by  [condition] ) A  where
rownum<=[endpage*pagesize]) where rd>=[startpage*pagesize]

在2中得到的表中选择大于开始页的数据

时间: 2024-11-08 09:37:45

Oracle分页语句的相关文章

oracle 分页语句

通过Debug调试,发现第一页查询到的数据没有问题,第二页时,查不到数据! 第一页时,控制台打印的sql语句: SELECT OBJ_NAME, OBJ_ATTRIBUTE_NAME, ATTRIBUTE_TYPE, DES, STS, PRIORITY FROM ( SELECT m.*,rownum row_id FROM (SELECT OBJ_NAME, OBJ_ATTRIBUTE_NAME, ATTRIBUTE_TYPE, DES, STS, PRIORITY FROM WKF_BUS

简单的oracle分页语句

SELECT * FROM ( SELECT rownum rn,te.* FROM (SELECT * FROM  tb_enterprise) te  WHERE rownum <= 10) WHERE rn>1 1.先通过rownum查询出数据小于最大记录数,同时把rownum查询出来 2.外层通过sql再通过rownum取最小范围

MySQL oracle 分页

(1)MySql的Limit m,n语句 Limit后的两个参数中,参数m是起始下标,它从0开始:参数n是返回的记录数.我们需要分页的话指定这两个值即可. 比如:查询10行记录,起始行从3开始 SELECT * FROM emp LIMIT 3, 10; (2)Oracle数据库的rownum 子查询要包含在括号内. 将子查询放在比较条件的右侧. 单行操作符对应单行子查询,多行操作符对应多行子查询. 子查询可以出现在select,from,where,having子句中 子查询不可以出现在gro

Oracle分页查询语句的写法(转)

分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.Oracle分分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHER

常用sql 分页语句(Oracle)

常用的Oracle查询语句 1.无ORDER BY排序的写法.(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然! sql语句如下: SELECT *        FROM (Select ROWNUM AS ROWNO, T.*       from k_task T      where Flight_date between to_date('20060501', 'yyyymmdd') and       to_date('20

oracle分页存储过程

oracle分页存储过程: CREATE OR REPLACE PROCEDURE FGK.prc_page (p_tableName in varchar2, --表名 p_strWhere in varchar2, --查询条件 p_orderColumn in varchar2, --排序的列 p_orderStyle in varchar2, --排序方式 p_curPage in out Number, --当前页 p_pageSize in out Number, --每页显示记录条

ORACLE 分页查询

Oracle之分页查询 Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围.

Mybatis分页-利用Mybatis Generator插件生成基于数据库方言的分页语句,统计记录总数 (转)

众所周知,Mybatis本身没有提供基于数据库方言的分页功能,而是基于JDBC的游标分页,很容易出现性能问题.网上有很多分页的解决方案,不外乎是基于Mybatis本机的插件机制,通过拦截Sql做分页.但是在像Oracle这样的数据库上,拦截器生成的Sql语句没有变量绑定,而且每次语句的都要去拦截,感觉有点浪费性能. Mybatis Generator是Mybatis的代码生成工具,可以生成大部分的查询语句. 本文提供的分页解决方案是新增Mybatis Generator插件,在用Mybatis

oracle分页查询结果集重复问题&解决方法

做项目时,无意间发现了分页上的一个bug,在此记录一下: 首先手动将后台输出的sql语句复制进oracle中查看,以便排查错误,对比以下视图前10条的结果集与10到20条的结果集,发现大部分记录出现重复现象,SQL语句如下: --前10条记录 select *   from (select row_.*, rownum rownum_           from (select t.idcard, count(1)                   from sampling.v_unvou