请教个奇怪是SQL问题?
初学oracle,碰到个奇怪的问题,为什么条件between   1   and   5有结果,between   2   and   5就没结果了,20分哦,谢谢     
       1      select   rownum,ename,sal,job   from   (select   *   from   scott.emp   order   by   sal   desc) 
       2*   where   rownum   between   1   and   5 
 SQL>    /   
             ROWNUM   ENAME                                       SAL   JOB 
 ----------   ----------   ----------   --------- 
                            1   KING                                       5000   PRESIDENT 
                            2   SCOTT                                    3000   ANALYST 
                            3   FORD                                       3000   ANALYST 
                            4   JONES                                    2975   MANAGER 
                            5   BLAKE                                    2850   MANAGER   
 SQL>    ed 
 已写入文件   afiedt.buf   
       1      select   rownum,ename,sal,job   from   (select   *   from   scott.emp   order   by   sal   desc) 
       2*   where   rownum   between   2   and   5 
 SQL>    /   
 未选定行     
------解决方案--------------------rownum的问题 
  select rn,ename,sal,job from (select scott.emp.*,rownum as rn from scott.emp order by sal desc) 
   where rnbetween 2 and 5
------解决方案--------------------这种写法之所以行不通,是因为 ROWNUM 列只有在记录被取出或过滤时才会应用到记录上。第一行在被取出时会被抛出,因为它的 ROWNUM 是1。然后,下一行被取出;它也会被抛出,因为它是新的“1”,以此类推,直到所有的行都被使用。所以这个查询不会返回任何记录。 
 当然,楼上的方法应该也是可行的。