Oracle的分页是怎样分的啊。我知道MySQL用的是limit关键字,但是Oracle是怎么样的呢?谁回答的好,我把分给

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle的分页是怎样分的啊。我知道MySQL用的是limit关键字,但是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控制分页查询的每页的范围。主要就是靠oracle的伪列rownum来控制。追问

为什么你这么多子查询啊。第三个Select是起什么作用啊。两个Select不就行了吗

追答

如果你是要全表,不是特别的某个关联字段,最里面的当然可以省略

追问

以前我一直没有搞懂。你这个SELECT A.*是什么意思啊。

追答

A是后面 (SELECT * FROM TABLE_NAME)的结果集别名,A.*当然就是查询A表的全部记录

追问

哦。如果我不需要SELECT * FROM TABLE_NAME这一步,那么这条分页的SQL是怎么写的啊。加个QQ聊吧。390930773

追答

你如果分页就只有一个表,那么就直接把里面哪个拿掉
SELECT * FROM
(SELECT A.*, ROWNUM RN FROM TABLE A
WHERE ROWNUM = 21

参考技术A oracle使用rownum进行数据分页,类似于sqlserver的top,就是说从游标从那一行开始取数据,取多少条数据,原理都是一样的
select * from (select A.*,ROWNUM RN from (
select t *
from table t
) A
where ROWNUM <=截止行
where RN >开始行
参考技术B rownum,网上一大堆的例子

以上是关于Oracle的分页是怎样分的啊。我知道MySQL用的是limit关键字,但是Oracle是怎么样的呢?谁回答的好,我把分给的主要内容,如果未能解决你的问题,请参考以下文章

Oracle分页查询

Oracle分页查询

怎样用mysql语句实现分页

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

mybatis 中怎样实现oracle分页语句

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