oracle rownum使用

rownum是oracle中神奇的列,它是一个伪列,是在sql查询出结果之后加在表上的。

oracle中rownum只能:
1)大于0,
2)等于1,
3)小于任何值。

1、大于0
比较:

select * from emp where rownum > 0;
select * from emp where rownum > 1;

rownum大于0,结果记录都返回。
rownum大于1,结果为空。

在执行过程中,rownum是从1开始的,判断rownum > 1时,第一条不满足会去掉,第二条又变成了1,所以最后结果会空。

2、等于1
比较:

select * from emp where rownum = 1;
select * from emp where rownum = 2;

rownum等于1,结果记录返回。
rownum等于2,结果为空。

在执行过程中,rownum是从1开始的,判断rownum = 2时,第一条不满足会去掉,第二条又变成了1,所以最后结果会空。

3、小于任何值
比较:

select * from emp where rownum < 10; select * from emp where rownum < 1;

rownum小于10,结果记录返回。
rownum小于1,结果为空。

在执行过程中,rownum是从1开始的,判断rownum < 1时,第一条不满足会去掉,第二条又变成了1,所以最后结果会空。 结论: 在使用rownum这个字段的时候,必须包含rownum为1的情况,否则查询出来就是空。 参考资料: http://yinzhihua2008.blog.163.com/blog/static/794306720119213055384/