当前位置:懂科普 >

综合知识

> oracle的分页怎么写

oracle的分页怎么写

1. 在oracle数据库中的分页SQL语句怎么写

前提:

oracle的分页怎么写

分页参数:size = 20 page = 2;

没有order by的查询;

嵌套子查询,两次筛选(推荐使用)。

SQL语句:

SELECT *

FROM (SELECT ROWNUM AS rowno, t.*

FROM DONORINFO t

WHERE t.BIRTHDAY BETWEEN TO_DATE ('19800101', 'yyyymmdd')

AND TO_DATE ('20060731', 'yyyymmdd')

AND ROWNUM <= 20*2) table_alias

WHERE table_alias.rowno > 20*(2-1);

扩展资料:

rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum 又成了1。依此类推,所以永远没有不满足条件的记录。

可以这样理解:rownum是一个序列,是Oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2。

依次类推:当使用“>;、>;=、=、between。and”这些条件时,从缓冲区或数据文件中得到的第一条记录的rownum为1,不符合sql语句的条件,会被删除,接着取下条。下条的rownum还会是1,又被删除,依次类推,便没有了数据。

2. 初学oracle,怎样写一个oracle的分页sql语句

先定义一个类除了上一页,下一页,首页,尾页,还要每页字段条数,当前页,总页数,总字段数

总字段数就是你查询出来的总字段数,

每页字段条数是你自己定义的,

然后算出总页数,当前页

然后你就可以拼接sql语句了:

select top A * from table where id not in (select top A*(B-1) id from table);

A是每页字段条数,B是当前页。

其实如果用了hibernate 会发现,有现成的方法

Query对象

query.setFirstResult(A);//设置当前页码,从0开始

query.setMaxResults(B);//设置每页显示数目

3. 初学oracle,怎样写一个oracle分页sql语句

sql = "select * from " +

"(select rownum r,* from " +

"(select * from articles order by postime desc)" +

"where rownum<= " + pageNo*pageSize +") tmp " +

"where r>" + (pageNo-1)*pageSize;

其中,pageNo为页数,pageSize为每页显示条数。

4. Oracle 中适合多表的分页语句怎么写

SELECT * FROM

(

SELECT A.*, ROWNUM RN

FROM (SELECT * FROM TABLE_NAME) A

WHERE ROWNUM &lt;= 40

)

WHERE RN &gt;= 21

其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM &lt;= 40和RN &gt;= 21控制分页查询的每页的范围。

标签: oracle 分页
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/zonghezhishi/7el5mg.html