如何用一条语句查询前N条最大的记录

north__wind 2006-05-26 11:17:15
一个表 个人编号是主键,想通过一条语句查出最大的前N个个人编号,这样的语句如何写
我写的是
SELECT * FROM grda WHERE id IN (select DISTINCT id from grda order by id desc) and rownum <11

总是提示我ORA-00907: MISSING RIGHT PARENTHESIS
...全文
174 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
north__wind 2006-11-28
  • 打赏
  • 举报
回复
呵呵 多谢sbaz(万神渡劫)和Reeezak(坚持信念) 帖子
今天突然想看看以前的帖子才看到二位的答案 的确如Reeezak(坚持信念) 所说 用RANK 和dense_rank 要好很多 再次感谢
超叔csdn 2006-05-26
  • 打赏
  • 举报
回复
虽然结帖了,但有点我还是要提出来的。
不然我不会傻傻地去多嵌套一层。

因为是先where rownum还是先order by并不是确定的,它与表的结构有关。
我曾经做过实验的,你order by不同的字段可能得到的查询结果就不同,但它也不是先取前多少条。与oracle的优化机制有点关系。所以楼主要得到想要的结果还是要写成我那个样子!

http://community.csdn.net/Expert/topic/4284/4284355.xml?temp=.4171717
这是我去年提出来的问题,有些高手也作了相应的解释,但我还是有点疑惑的。
north__wind 2006-05-26
  • 打赏
  • 举报
回复
晕了 原来这样写就行
"SELECT * FROM GRDA WHERE ROWNUM <= 你的数字 ORDER BY ID DESC"

呵呵 原来是先ORDER BY 后 WHERE 以为是先WHERE 后ORDER BY 呢 呵呵
north__wind 2006-05-26
  • 打赏
  • 举报
回复
真帅 长知识了 原来SELECT 语句可以这么写
智者留其名 多挂一天
Reeezak 2006-05-26
  • 打赏
  • 举报
回复
因为lz的是主键,所以没有必要去distinct了
Reeezak 2006-05-26
  • 打赏
  • 举报
回复
晕,又写错了

SELECT * FROM GRDA WHERE ROWNUM <= 你的数字 ORDER BY ID DESC
Reeezak 2006-05-26
  • 打赏
  • 举报
回复
不好意思
没有看清楚lz的东西
更正如下

SELECT * FROM CSDN.TABLE111
WHERE ROWNUM <= 5
ORDER BY ID DESC
超叔csdn 2006-05-26
  • 打赏
  • 举报
回复
select *
from
(
select * from grda
order by id desc)
where rownum<11;
kingofworl 2006-05-26
  • 打赏
  • 举报
回复
SELECT *
FROM grda
WHERE id IN (select id from (select DISTINCT id from grda order by id desc)
where rownum <11)
order by id desc

Reeezak 2006-05-26
  • 打赏
  • 举报
回复

SELECT B.* FROM
GRDA B
INNER JOIN
(SELECT ID FROM
(SELECT DISTINCT ID, RANK() OVER (ORDER BY ID) AS RK FROM GRDA) A
WHERE RK <= 10) C
ON B.ID = C.ID
skytears 2006-05-26
  • 打赏
  • 举报
回复
SELECT * FROM grda WHERE id IN (select id from (select DISTINCT id from grda order by id desc) where rownum <11)
Reeezak 2006-05-26
  • 打赏
  • 举报
回复
sbaz(万神渡劫) 的精神可嘉哦,hoho
那我也补充一下
如果要包上一层的话
为什么不使用RANK?那个就绝对不会出现rownum的一些问题

17,377

社区成员

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

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