java oracle分页查询语句_oracle 分页语句

java oracle分页查询语句_oracle 分页语句通过Debug调试,发现第一页查询到的数据没有问题,第二页时,查不到数据!第一页时,控制台打印的sql语句:SELECTOBJ_NAME,OBJ_ATTRIBUTE_NAME,ATTRIBUTE_TYPE,DES,STS,PRIORITYFROM(SELECTm.*,rownumrow_idFROM(SELECTOBJ_NAME,OBJ_ATTRIBUTE_NAME,ATT…

大家好,又见面了,我是你们的朋友全栈君。

通过Debug调试,发现第一页查询到的数据没有问题,第二页时,查不到数据!

第一页时,控制台打印的sql语句:

48304ba5e6f9fe08f3fa1abda7d326ab.png

SELECTOBJ_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 FROMWKF_BUSINESS_CONFIG ) m

WHERE rownum >= 1)

where row_id < 26

48304ba5e6f9fe08f3fa1abda7d326ab.png

第二页时,控制台打印的sql语句:

48304ba5e6f9fe08f3fa1abda7d326ab.png

SELECTOBJ_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 FROMWKF_BUSINESS_CONFIG ) m

WHERE rownum >= 26)

where row_id < 51

48304ba5e6f9fe08f3fa1abda7d326ab.png

通过分析和查询oracle分页的知识,发现是SQL语句有问题!

不能对ROWNUM使用>(大于1的数值)、>=(大于或等于1的数值)、=(大于或等于1的数值),否则无结果

— 所以直接用只能从1开始

— rownum >10 没有记录,因为第一条不满足去掉的话,第二条的rownum又成了1,所以永远没有满足条件的记录。

正好,查询第二页的时候,上面的sql语句犯了这个问题!

既然不能>=(大于或等于1的数值),那我就让rownum

48304ba5e6f9fe08f3fa1abda7d326ab.png

SELECTOBJ_NAME, OBJ_ATTRIBUTE_NAME, ATTRIBUTE_TYPE, DES, STS, PRIORITY

FROM( SELECT m.*,rownum row_id

FROM(SELECTOBJ_NAME, OBJ_ATTRIBUTE_NAME, ATTRIBUTE_TYPE, DES, STS, PRIORITY

FROMWKF_BUSINESS_CONFIG ) m

WHERE rownum <51)

where row_id >= 26

48304ba5e6f9fe08f3fa1abda7d326ab.png

将sql语句改成这样时,按照要求可以查询到数据!

既然遇到了Oracle分页查询的问题,正好复习下Oracle分页的相关知识!

在Mysql中,分页查询很简单!    分页查询使用的是limit关键字进行查询。它后面有两个参数

第一个参数是起始的位置,第二个参数是每页需要显示的条目数。

举例:商品表中有10条记录,现在需要进行分页显示,每页显示3条数据。现在需要查看第二页的数据。那么应该使用的sql语句是:

select * from product limit 3,3;                   第一个参数计算的公式为:(查询的页数-1)*每页显示条目数    即 (2-1)*3=3

在Oracle中分页就没有那么简单!Oracle中是通过rownum实现分页查询的!

不能对ROWNUM使用>(大于1的数值)、>=(大于或等于1的数值)、=(大于或等于1的数值),否则无结果

所以直接用只能从1开始

rownum >10 没有记录,因为第一条不满足去掉的话,第二条的rownum又成了1,所以永远没有满足条件的记录。

select * from student where rownum>=1;

如果想要用rownum不从1开始,需按下面方法使用

select a1.* from (select student.*,rownum rn from student) a1 where rn >5

分页查询一

select * from (select a1.*,rownum rn from (select * from student) a1 where rownum <=5) where rn>=2;

分页查询二

select a1.* from (select student.*,rownum rn from student where rownum <=5) a1 where rn >=3;

分页查询三

select a1.* from (select student.*,rownum rn from student) a1 where rn between 3 and 5;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140167.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 推荐 20 款 IDEA 主题!「建议收藏」

    推荐 20 款 IDEA 主题!「建议收藏」官方对主题模块的介绍作为一名开发人员,您需要使用大量文本资源:编辑器中的源代码、搜索结果、调试器信息、控制台输入和输出等等。颜色和字体样式用于格式化这个文本,并帮助您更好地理解它一目了然…

    2022年5月18日
    230
  • List转JSONArray、JSONArray转List、String转JSONArray

    List转JSONArray、JSONArray转List、String转JSONArray1.List转JSONArrayList<T>list=newArrayList<T>();JSONArrayarray=JSONArray.parseArray(JSON.toJSONString(list));2.JSONArray转ListJSONArrayarray=newJSONArray();List<EventColAttr>list=JSONObject.parseArray(array.toJSONStri

    2022年6月20日
    45
  • html怎么让表格居中显示_html表格文字居中怎么设置

    html怎么让表格居中显示_html表格文字居中怎么设置HTML怎么使表格居中显示文本居中表格居中查看结果

    2026年1月25日
    2
  • FileInputStream概述[通俗易懂]

    FileInputStream概述[通俗易懂]一FileInputStream概述FileInputStream:从文件系统中的文件获取输入字节。可用的文件取决于主机环境。FileInputStream用于读取诸如图像数据的原始字节流。要读取字符流,请考虑使用FileReader。二FileInputStream的构造方法1.FileInputStream(Filefile)通过打开与实际文件的连接来创建FileInputStream,该文件由文件系统中的File对象file命名。2.FileInputSt…

    2022年6月4日
    48
  • Python练手项目之微信机器人、恢复被撤回的微信消息

    Python练手项目之微信机器人、恢复被撤回的微信消息一个python练习项目。基于图灵机器人的微信自动回复工具,对接itchat恢复被撤回的消息。【程序功能】1、实现微信单聊/群聊自动回复。2、恢复被撤回的微信消息(通过手机助手发送到手机微信)【GitHub项目地址】]https://github.com/Liiking/WechatTool(含:源代码及打包好的Mac和Windows桌面应用程序)【下载体验地址】哆啦猫Mac版,…

    2022年6月29日
    38
  • Windows下cmd命令无法切换盘符「建议收藏」

    Windows下cmd命令无法切换盘符「建议收藏」发现使用cmd的cd命令无法从c盘切换到d盘,在切换之前先打D:再正常使用cd命令就可以啦

    2022年10月3日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号