oracle不支持top
但可以
select * from test where rownum <= 5 minus select * from test where rownum <= 7

解决方案 »

  1.   

    to:Eric_1999(╙@^@╜) ,条件好象反了:
    select * from can_jsk where rownum <= 7 minus select * from can_jsk where rownum <= 5
      

  2.   

    注意:rownum只能用符号(<、<=、!=)。 
                select * from tablename where rownum != 10;返回的是前9条记录。 
                不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件 只能用
    select *
    from table_name
    where rownum < N
    minus
    select *
    from table_name
    where rownum < M就可以选中 M 与 N之间的。rownum是伪列,代表已经查询到的记录的行序号。还未查到的记录是没有rownum的。
    因此ROWNUM>=1 AND ROWNUM<=10是可以查到前10条记录但是不能证明
    ROWNUM>=500 AND ROWNUM<=600可以查处500~600的501条记录。
    ROWNUM>=1 AND ROWNUM<=10在逻辑上相当于ROWNUM<=10
    正确的方法是:
    select * from (select Z_YXJK_DMDH.*, rownum as rid from Z_YXJK_DMDH where rownum<=600) where rid > 500
    或者
    select * from Z_YXJK_DMDH where rownum<=600
    minus
    select * from Z_YXJK_DMDH where rownum<=500
    在效率上推荐前一种
      

  3.   

    rownum是不能用〉,〉=,between...and
    只能用(<、<=、!=)。
      

  4.   


    试试这个select a.* from(
    select a.*,row_number() over (order by rowid) row_num from test
                   ) a
    where row_num >= 5 and row_num <= 7
      

  5.   

    select * from IEXRTp00
    where rownum <= 7 minus select * from IEXRTp00 where rownum <= 4