select top 5 t.* from (select top 10 i from tp order by i) as t order by i desc我有一张表tp,表中有一个字段i,我想选出第6到第10个~~
这句话在SQLSERVER中可以执行~~
在oracle里提示“ORA-00923 未找到预期FROM关键字”在oracle里应该怎样写这句话?

解决方案 »

  1.   

    在oracle中不能用top,要用rownum来判断
    例如:
    select * from emp rownum >2 and rownum <5;
      

  2.   

    select * from emp where rownum<5;
    不能使用>
      

  3.   

    在oracle中似乎不能在from后面嵌套sql语句?
      

  4.   

    上面说错了,可以在from后面嵌套sql语句的~~但是,比如说我想选出6~10行,我用这句话不行:
    select * from (select * from tp where rownum<=10 order by i) where rownum<=5  order by i desc
    这样选出的仍旧是1~5行~写成这样才行:
    select * from (select * from (select * from devbaseinfo where rownum<=10 order by devid)  order by devid desc) where rownum<=5 
    真罗嗦,有什么办法可以简化吗?
      

  5.   

    select * from tp where rownum<=10 minus select * from tp where rownum<=5
      

  6.   

    oracle没有top关键字
    使用rownum,
    select * from table where rownum<11 minus select * from table where rownum<6;