SQL语句如何查询成绩第二高的学生?

 我来答
李磊_1
2013-01-05 · TA获得超过299个赞
知道小有建树答主
回答量:337
采纳率:66%
帮助的人:117万
展开全部
用的是什么数据库?如果是mysql 的话可以这样:
-- 找到第二高的分数
select min(score) from (select distinct score from scores order by score desc limit 2) a;
-- 找到记录
select * from scores where score in (select min(score) from (select distinct score from scores order by score desc limit 2) a);
其中score是分数,scores是数据表。
追问
题目说使用标准SQL语句
追答
select * from scores where score in (select min(score) from (select top 2 distinct score from scores order by score desc) a)
这个在MSSQL下,应该是可以执行的,没装环境,你自己试试看,MSSQL应该可以看做标准的了。
百度网友9671011
2013-01-05 · TA获得超过747个赞
知道小有建树答主
回答量:292
采纳率:100%
帮助的人:68.9万
展开全部
select top 1 * from XXX where XXX.ID not in (select top 1 ID from XXX order by XXX.score desc) order by XXX.score desc
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友752c4d2
2013-01-05 · TA获得超过219个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:156万
展开全部
select * from (
select * ,row_number() over(order by 分数 desc) number from table) a
where number=2
追问
row_number() over 好像书上没有这中类型的句式啊,是某个特定DB里用的么?
还有最后面a是什么?
追答
一般的db应该都有的。a是临时表名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式