oracle 中可以这样写吗 (SQL)

pittzhao 2004-11-04 11:28:36
select top 10 字段a, 字段b from 表名 order by ID字段 desc
...全文
150 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinggom 2004-11-05
  • 打赏
  • 举报
回复
回复人: bluelamb(bluelamb) ( ) 信誉:100 2004-11-4 11:57:21 得分: 0

select 字段a, 字段b from 表名 where rownum<=10 order by ID字段 desc



这个是不能够实现楼主意图的。因为rownum的计数实际上是在order by 之前的,所以如果你这样写的话,实际上oracle执行的是 先从表中随机取出10条数据,然后进行排序。可以用explain它的执行计划看看。所以,正确的写法应该和上上上上上的一样:select * from
(select 字段a, 字段b from 表名 order by ID字段 desc) t
where rownum<=10;
GerryYang 2004-11-05
  • 打赏
  • 举报
回复
同意楼上
lzj033 2004-11-05
  • 打赏
  • 举报
回复
select * from
(select 字段a, 字段b from 表名 order by ID字段 desc) t
where rownum<=10;
jack_4826 2004-11-05
  • 打赏
  • 举报
回复
不行,用rownum
gaoxiaospring 2004-11-05
  • 打赏
  • 举报
回复
Oracle没有TOP关键字,不行。
jacky1_102 2004-11-05
  • 打赏
  • 举报
回复
在sqlserver中是可以用top n,但是在oracle中用rownum
具体代码如下:
select * from (select 字段a,... from tabname order by 列名 desc) where rownum<=10
wumz 2004-11-05
  • 打赏
  • 举报
回复
在sqlserver中用top n,
在oracle中用rownum间接实现
jaket_vip 2004-11-05
  • 打赏
  • 举报
回复
GOOD
bluelamb 2004-11-04
  • 打赏
  • 举报
回复
select * from (select col,... from tab order by col desc) where rownum<=10
qiaozhiwei 2004-11-04
  • 打赏
  • 举报
回复
用rownum,同意楼上
bzszp 2004-11-04
  • 打赏
  • 举报
回复
select * from
(select 字段a, 字段b from 表名 order by ID字段 desc) t
where rownum<=10;
luckydog903 2004-11-04
  • 打赏
  • 举报
回复
select 字段a, 字段b from 表名 where rownum<=10 order by ID字段 desc

17,377

社区成员

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

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