当前位置:   article > 正文

记录总结:Oracle分段、分页查询(rownum )和 递归查询_rownum的start with

rownum的start with

分段查询rownum

例如查询第1300 到1310之间9条数据

select m.* from
(select rownum as rowno,f.* from  orcltable F where rownum <1310 order by f.row_id ) m where m.rowno>1300
  • 1
  • 2

注意(rownum易出错情况)如下:

select rownum as rowno,f.* from  orcltable F where rownum >1310 
  • 1

若改为大于查询不出任何结果;

因为ROWNUM是对结果集加的一个伪列;不同的方式查询rownum是动态变化的;它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值。
rownum 是对结果集的一个标注序号列;

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

ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类 推。如果你用>条件,因为从缓冲区或数据文件中得到的第一条记录的rownum为1,则被删除, 接着取下条,可是它的rownum还是1,又被删除,依次类推,便没有了数据。

递归查询
start with connect by prior

SELECT o.name orgname FROM TREE   T, ORGANIZATION 
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/268568
    推荐阅读
    相关标签
      

    闽ICP备14008679号