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

 我来答
固若老唐
推荐于2019-08-15 · 原神攻略、整活、抽卡、娱乐博主
固若老唐
采纳数:31 获赞数:16458

向TA提问 私信TA
展开全部

前提:

分页参数: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,又被删除,依次类推,便没有了数据。

skyfukk
推荐于2017-09-08 · TA获得超过1187个赞
知道小有建树答主
回答量:966
采纳率:100%
帮助的人:635万
展开全部
select * from
(select a.*,rownum rn from
(select * from 表名) a
)
where rn between 1 and 50

50行为一页
1和50为行号,根据你的情况自己改
追问
那我直接这样写行不
select * from (select * from 表名) where rowNum <=3
追答
分页推荐用between
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蘑菇小喵d9
2012-03-27 · 超过70用户采纳过TA的回答
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:161万
展开全部
有条语句可以设置查询显示的行数,不知道你是不是这个意思
语句:set pagesize n ,n的默认值为14,即每页显示14行,你可以自己设置
追问
可以写个例子来看下吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2012-03-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4062万
展开全部
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM
(
select count(*) over() DATACNT,ta.* from ta
)
) A WHERE ROWNUM <= 100
) WHERE RN >= 75
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朴煆莜
2019-07-17
知道答主
回答量:2
采纳率:0%
帮助的人:967
展开全部
select * from(select A.*,ROWNUM rn from(sql) A where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式