高分请教高手 老版Oracle 8i order by 语句

ai5505 2010-04-29 12:53:07
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缺少右括号
在这里搞了好久,没搞定啊!高手请教高手!
...全文
140 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xidiancjw 2010-05-06
  • 打赏
  • 举报
回复
不懂,顶一下
wosywrc7 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ptpa 的回复:]

不需要那么复杂吧
select * from orders where rownum<1000 order by ordernum desc
倒序排 取前1000行
select * from orders where rownum<1000 order by ordernum
正序排 取前1000行
oracle9 10里面都这样 8没有 您试试看看
[/Quote]
不好意思,纠正一下
楼上的理解是错的(你的理解是先查出1000行在排序,而楼主的意思是先排序在找出最大的1000行)
或许大家的环境不一样,LZ的环境是oracle8i 8.0.5老版的
ptpa 2010-04-30
  • 打赏
  • 举报
回复
不需要那么复杂吧
select * from orders where rownum<1000 order by ordernum desc
倒序排 取前1000行
select * from orders where rownum<1000 order by ordernum
正序排 取前1000行
oracle9 10里面都这样 8没有 您试试看看
huminghua 2010-04-29
  • 打赏
  • 举报
回复
。。。。。。。。
xiaosheng2008 2010-04-29
  • 打赏
  • 举报
回复
奇怪的现象必然是奇怪的原因,这种问题不要按套路解决,呵呵
ai5505 2010-04-29
  • 打赏
  • 举报
回复
贴子要沉了,自顶一下~

在线等啊,没人过来看~
ai5505 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 coolkisses 的回复:]

老环境下也不应该有这种问题啊,用括号是很正常的语法,楼主检查下是不是用了非英文状态下的字符
比如,半角、全角
[/Quote]
这个注意到的~!但还是谢谢楼上关注
coolkisses 2010-04-29
  • 打赏
  • 举报
回复
老环境下也不应该有这种问题啊,用括号是很正常的语法,楼主检查下是不是用了非英文状态下的字符
比如,半角、全角
ai5505 2010-04-29
  • 打赏
  • 举报
回复
在线等啊~老大们过来看下啊~
ai5505 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhangwonderful 的回复:]
select * from (select * from orders order by ordernum desc) where rownum<1000
可以的
[/Quote]
你的正常?你的可能不是这个oracle版本,但还是谢谢你~
在这个oracle 8i 8.0.5这个环境下,只要order by 在括号里面就会报错提示:ora-0090缺少右括号
zhangwonderful 2010-04-29
  • 打赏
  • 举报
回复
此处ordernum字段书写是否正确
zhangwonderful 2010-04-29
  • 打赏
  • 举报
回复

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

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧