Oracle中ROWNUM的使用

系统 2449 0

对于 rownum 来说它是 oracle 系统顺序分配为从查询返回的行的编号,返回的第一行分配的是 1 ,第二行是 2 ,依此类推,这个伪字段可以用于限制查询返回的总行数,而且 rownum 不能以任何表的名称作为前缀。

(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息,可以使用 rownum=1 作为条件。但是想找到学生表中第二条学生的信息,使用 rownum=2 结果查不到数据。因为 rownum 都是从 1 开始,但是 1 以上的自然数在 rownum 做等于判断是时认为都是 false 条件,所以无法查到 rownum = n n>1 的自然数)。

Oracle中ROWNUM的使用


2 rownum 对于大于某值的查询条件
    
如果想找到从第二行记录以后的记录,当使用 rownum>2 是查不出记录的,原因是由于 rownum 是一个总是从 1 开始的伪列, Oracle 认为 rownum> n(n>0 的自然数,n=0则查询全部 ) 这种条件依旧不成立,所以查不到记录。

Oracle中ROWNUM的使用


3 rownum 对于小于某值的查询条件
如果想找到第三条记录以前的记录,当使用 rownum<3 是能得到两条记录的。显然 rownum 对于 rownum<n (n>1 的自然数)的条件认为是成立的,所以可以找到记录。

Oracle中ROWNUM的使用


综上几种情况,可能有时候需要查询 rownum 在某区间的数据,那怎么办呀从上可以看出 rownum 对小于某值的查询条件是人为 true 的, rownum 对于大于某值的查询条件直接认为是 false 的,但是可以间接的让它转为认为是 true 的。那就必须使用子查询。例如要查询 rownum 在第二行到第三行之间的数据,包括第二行和第三行数据,那么我们只能写以下语句,先让它返回小于等于三的记录行,然后在主查询中判断新的 rownum 的别名列大于等于二的记录行。但是这样的操作会在大数据集中影响速度。
Oracle中ROWNUM的使用

Oracle中ROWNUM的使用


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论