Oracle的rownum是伪列,它的原理网上面有很多,可是我们还是很容易混乱,其实我们对于它的原理了解一下就好了,重要的是使用,所以我们只要能够确保自己在使用的时候不出错就好了,但是如果我们又对它的原理一点也不清楚又不行,因此我们还需要通过一种方式来记住它的特殊性,我们用一种较为简单的方法来记住它的特殊之处就行了。1.rownum它不可以使用任何的表作为自己的前缀,因为它并不是任何表里面的一个固定的字段,它只是查询结果集的一个顺序。2.它总是从1开始,进行判断的时候也是从1开始的。所以我们可以这样来记忆:一个查询语句是否会成立有一个很简单的判断标准,就是“对1成立,查询成立;对1不成立,查询不成立”;比如我们要查询emp表的前5条记录我们可以这样:select * from emp where rownum<=5;能不能查询出来结果呢?我们按照上面的那句话来判断,因为1<=5所以成了,所以可以查询出来结果。但是如果我们要查询出来3到5条记录,那么如果我们这样写:select * from emp where rownum>3 and rownum<5;这样我们还是用上面的那句话来判断,1<5成立,但是1>3就不成立了,所以结果就是不成了,所以我们得不到结果。因此如果我们要得到结果的话,我们需要使用子查询来处理了select * from (select rownum rn,emp.* from emp where rownum<5) where rn>3;这样来做就没有问题了。
更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle包的使用Oracle中job的简单实例相关资讯 oracle数据库教程
- Oracle raw数据类型介绍 (01/29/2013 10:05:53)
- 监听器注册与ORA-12514 错误分析 (11/13/2012 14:30:08)
- Oracle SQL的cursor理解 (11/13/2012 14:16:17)
| - Oracle 如何强制刷新Buffer Cache (01/29/2013 10:02:46)
- dblink致Oracle库的SCN变成两库的 (11/13/2012 14:24:41)
- Linux操作系统下完全删除Oracle数 (11/13/2012 08:25:52)
|
本文评论 查看全部评论 (0)