SQL server中可以执行的SQL语句,到了ORACLE里报错 ORA-00923

Aerith 2004-12-19 03:07:49
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里应该怎样写这句话?
...全文
338 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
llm06 2004-12-21
  • 打赏
  • 举报
回复
oracle没有top关键字
使用rownum,
select * from table where rownum<11 minus select * from table where rownum<6;
civb 2004-12-21
  • 打赏
  • 举报
回复
select * from tp where rownum<=10 minus select * from tp where rownum<=5
Aerith 2004-12-21
  • 打赏
  • 举报
回复
谢谢各位~
Aerith 2004-12-20
  • 打赏
  • 举报
回复
上面说错了,可以在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
真罗嗦,有什么办法可以简化吗?
Aerith 2004-12-20
  • 打赏
  • 举报
回复
在oracle中似乎不能在from后面嵌套sql语句?
newplayer1 2004-12-20
  • 打赏
  • 举报
回复
select * from emp where rownum<5;
不能使用>
dreamperson 2004-12-19
  • 打赏
  • 举报
回复
在oracle中不能用top,要用rownum来判断
例如:
select * from emp rownum >2 and rownum <5;

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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