懂oracle的请看看这条sql语句怎么写?

cacao32 2003-08-18 05:09:31
student表:id char(8)、name varchar2(8)、score number。
要求用一条语句求出score排第4的学生的成绩。
...全文
45 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
pmfk212 2003-08-19
  • 打赏
  • 举报
回复
SELECT * FROM STUDENT WHERE ROWNUM=4 ORDER BY SCORE desc
incats 2003-08-19
  • 打赏
  • 举报
回复
select * from student where id =
( select max(id) from student
where id in
( select id from student
where rownum < 5 order by score desc
)
)
;
愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
sqlserver:

select top 1 * from (SELECT top 4 * FROM STUDENT ORDER BY SCORE desc) A order by score


愉快的登山者


◢◣◢◣◢◣
愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
SELECT * FROM STUDENT WHERE ROWNUM=4 ORDER BY SCORE desc


愉快的登山者


◢◣◢◣◢◣
Jekson 2003-08-19
  • 打赏
  • 举报
回复
Good!
polugen 2003-08-19
  • 打赏
  • 举报
回复
SELECT ID,NAME,SCORE FROM STUDENT WHERE ROWNUM=4 ORDER BY SCORE
networld2002 2003-08-19
  • 打赏
  • 举报
回复
学习
cacao32 2003-08-19
  • 打赏
  • 举报
回复
多谢大家!
如果没有新的方法,我就准备结贴了。
jdsnhan 2003-08-19
  • 打赏
  • 举报
回复
同意坦克的。
select * from student where id =
(select max(id) from student where rownum < 5);
肯定没问题
Embed1979 2003-08-19
  • 打赏
  • 举报
回复
假设score中的值越大排名越靠前。
1、只求成绩
select min(a.score) No4_score
from (select distinct score
from student
order by score desc) a
where rownum < 5
;
2、查看档案
select *
from student
where score = (
select min(a.score) No4_score
from (select distinct score
from student
order by score desc) a
where rownum < 5
)
;
incats 2003-08-19
  • 打赏
  • 举报
回复
sorry. again:

select * from student where id = (select max(id) from student where rownum < 5);
cacao32 2003-08-19
  • 打赏
  • 举报
回复
谢谢大家帮忙,不过各位的做法我都试了一下,好像不行。

我的表中有9条数据:
id name score classid rowid
1 刘阳 1 1 AAACaAAAqAAAAB2AAA
2 张涛 2 2 AAACaAAAqAAAAB2AAB
3 严爱军 3 4 AAACaAAAqAAAAB2AAC
4 郭晖 4 6 AAACaAAAqAAAAB2AAD
5 曹超 5 7 AAACaAAAqAAAAB2AAE
6 李俊之 4 5 AAACaAAAqAAAAB2AAF
7 杨龙 5 6 AAACaAAAqAAAAB2AAG
8 冷宇峰 7 7 AAACaAAAqAAAAB2AAH
9 陈明 8 5 AAACaAAAqAAAAB2AAI

1.用SELECT ID,NAME,SCORE FROM STUDENT WHERE ROWNUM=4 ORDER BY SCORE,结果是没有记录。
2.select * from student where id =
( select max(id) from student
where id in
( select id from student
where rownum < 5 order by score desc
)
)
;,结果是缺少右括号,加了一个右括号,还是说缺少右括号。
jackzhang168 2003-08-19
  • 打赏
  • 举报
回复
SELECT * FROM STUDENT WHERE ROWNUM=4 ORDER BY SCORE desc

752

社区成员

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

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