1、在ORACLE中,rownum是一个伪列,对于这个列,只能使用"<"或者"<="这两个操作符
2、它一定是从1开始的,不能跨过1;
3、不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件不成立,查不到记录。执行总是显示:未选定行。

如果要使用  >,>=,=,Between...and 操作符,可以使用子查询把rownum转为实际列:
select namef from (select rownum r,namef from tablename)t where r > 10;
select namef from (select rownum r,namef from tablename)t where r between 10 and 20;

Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。
SQL> select rownum ,id,name from student order by name;
     ROWNUM ID      NAME
---------- ------ ---------------------------------------------------
          3 200003 李三
          2 200002 王二
          1 200001 张一
          4 200004 赵四
可以看出,rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。为了解决这个问题,必须使用子查询
SQL> select rownum,id,name from (select * from student order by name);
     ROWNUM ID      NAME
---------- ------ ---------------------------------------------------
          1 200003 李三
          2 200002 王二
          3 200001 张一
          4 200004 赵四
这样就成了按name排序,并且用rownum标出正确序号。