Oracle 8i环境
版本号
Oracle8 Release 8.0.5.0.0 - Production(版本号)
PL/SQL Release 8.0.5.0.0 - Production
CORE Version 4.0.5.0.0 - Production
TNS for 32-bit Windows: Version 8.0.5.0.0 - Production
NLSRTL Version 3.3.2.0.0 - Production问题:我想查找出按ordernum字段排序后的最大1000行数据
(意思跟sql server 排序后的top语句一个意思select top 1000 * from orders order by ordernum desc)但在Oracle 8i 8.0.5版环境下,这样写没搞定,请教高手,Oracle 8i 8.05下怎么写?或提供思路select * from (select * from orders order by ordernum desc) where rownum<1000

但order by 处提示错误ora-0090缺少右括号
在这里搞了好久,没搞定啊!高手请教高手!

解决方案 »

  1.   


    select * from (select * from orders order by ordernum desc) where rownum<1000
    可以的
      

  2.   

    此处ordernum字段书写是否正确
      

  3.   

    你的正常?你的可能不是这个oracle版本,但还是谢谢你~
    在这个oracle 8i 8.0.5这个环境下,只要order by 在括号里面就会报错提示:ora-0090缺少右括号
      

  4.   

    不需要那么复杂吧
     select * from orders where rownum<1000 order by ordernum desc
    倒序排 取前1000行
     select * from orders where rownum<1000 order by ordernum
    正序排 取前1000行
    oracle9 10里面都这样 8没有 您试试看看
      

  5.   

    不好意思,纠正一下
    楼上的理解是错的(你的理解是先查出1000行在排序,而楼主的意思是先排序在找出最大的1000行)
    或许大家的环境不一样,LZ的环境是oracle8i 8.0.5老版的