select * from (select rownum rm,a.* from table_name a) where rm<=30 and rm>=5;
select * from table_name where rownum<=20

解决方案 »

  1.   

    这个是Oracle分析函数的事情如果要做到很细致的话,必须使用分析函数粗糙一点可以用如下类似的方法:
    IDLE> edit
    已写入文件 afiedt.buf  1  SELECT * FROM
      2  ( SELECT ename FROM emp order by sal )
      3* WHERE rownum <= 20
    IDLE> /ENAME
    --------------------
    SMITH
    JAMES
    ADAMS
    WARD
    MARTIN
    MILLER
    TURNER
    ALLEN
    CLARK
    BLAKE
    JONES
    SCOTT
    FORD
    KING已选择14行。IDLE> SHOW USER
    USER 为"SCOTT"
    IDLE>
      

  2.   

    select * from table_name  where rownum <=
    (select count(*)-20 from table_name);
      

  3.   

    select * from (select rownum rm,a.* from table_name a) where rm<=30 and rm>=5;
    取不出第5--30 行的记录