博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用rownum先排序后分页
阅读量:4578 次
发布时间:2019-06-08

本文共 757 字,大约阅读时间需要 2 分钟。

  今天突然想到rownum可以解决分页问题,于是做了各种实验,找个几个文章,最后有了一定成果。

  现有表tablename,含有字段showorder,要求提取showorder的第11行到20行数据。

  用语句select rownum r,a.* from tablename a order by showorder进行查询的时候会发现结果集中rownum是在排序之前赋的值,因此如果需要按showorder提前的话应该先将tablename按showorder排序,将排序后的结果集按rownum提取。

  用语句SELECT ROWNUM r, a.* FROM (select * from tablename order by showorder) a WHERE ROWNUM <= 20 可以查出前20条,但如果过滤条件变成rownum<=20 and rownum >=10,就会发现结果集一条数据都没有,因为rownum是提取数据,将数据操作完成之后再进行标记行号,关于这点,有个作者写的很好,大家可以看看。

  剩下的操作是将标记好行号的前20条数据提取后十条。

  SELECT *  FROM (SELECT ROWNUM r, a.* FROM (select * from tablename order by showorder) a WHERE ROWNUM <= 20 )  WHERE r >= 11;

  上面的语句用plsql执行时用了0.078秒,等同于plsql查询上千行的表时只查处了前十条的时间。

  网上有很多好文章写着块的,此处只记载了适用于我的方面。

转载于:https://www.cnblogs.com/xiufengd/p/4739402.html

你可能感兴趣的文章
IdentityServer4问题记录
查看>>
(私人收藏)[开发必备]最全JQuery离线快速查找手册(可查询可学习,带实例)...
查看>>
基于 Webpack 4 搭建 Vue 开发环境
查看>>
基于SpringBoot+MyBatis实现一套电商系统
查看>>
转:Android 监控网络状态http://developer.android.com/sdk/index.html#download
查看>>
DDD 之 Multiple Canonical Models
查看>>
领域驱动设计之model的关系及ef建模
查看>>
mininet指令详解
查看>>
JQuery UI dialog 弹窗实例及参数说明
查看>>
python-切片-知识整理
查看>>
word-->pdf
查看>>
webview加载地图所需要的设置
查看>>
《一起》个人进展——Day01
查看>>
如何成为Python高手
查看>>
C++智能指针
查看>>
ANDROID L——Material Design综合应用(Demo)
查看>>
django使用户名和邮箱都能登录
查看>>
第一章 AT&T
查看>>
Java是否可用public成员变量?
查看>>
DNS解析原理和流程
查看>>