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

分段查询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

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

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

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

因为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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值