oracle中的rownum

oracle数据库不支持类似mysql的limit功能,所以要限制查询个数的时候常会用到rownum。rownum时oracle的关键字。

1. romnum是oracle系统给结果集的一个序列值,所以必须是有结果集才会有rownum。rownum既可以是查询条件也可以作为查询结果字段。

2.使用rownum作为查询条件时,只能使用符号<,<=,!=,不支持符号>,>=,between...and...(>=1,>0除外),并不是说用>,>=,between and会报sql语法错,而是查询结果为空。用例子解释:

(1)select * from cti_batch where rownum<10;oracle系统执行这条查询语句,从缓存或数据库中取出第一条记录,rownum=1,符合查询条件,放入结果集;接着取出第二个,rownum=2,符合查询条件,也放入结果集,直到第十条记录,rownum=10,不符合查询条件这条记录会舍弃,接着取下一条rownum=10,不符合,舍弃,以此类推,直到查询到最后一行。

(2)select * from cti_batch where rownum>10:执行这条语句时,从缓存或数据库中取第一条记录,rownum=1,不符合条件,所以不能作为查询结果,舍弃,取下一条记录,rownum=1,还不符合,以此类推,查询结果为空。

(3)select * from cti_batch where rownum!=10:执行这条sql语句,取出第一条记录,rownum=1,符合查询条件,是放入查询结果集,接着取下一条记录,rownum=2,符合条件,直到第十条记录,rownum=10,不符合条件,舍弃该记录,取下一条,rownum=10还不符合,舍弃,以此类推,直到查询到最后。这条语句的查询结果和(1)是一样的。

所以,oracle系统查询时,第一个符合条件的结果rownum=1,所以查询条件一定是包含1或从1开始的。

3.

(1)

image 

image

(2)

image

image

(3)

image

image

(4)

image

image

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值