SELECT s.SNAME FROM SC sc,S s,C c WHERE s.S#=sc.S# and sc.C# = c.C# and sc.TEACHER="数据库" order by GRADE desc limit 2,1;
用这条sql就可以搞定
㈡ 用sql查询第三名到第五名的同学,怎么用呢
我们先分析一下,假设有一个表叫grade,里面有一列叫A,A中记录的是很多学生的成绩,那么我们可以采取这种办法求出第三名学生的成绩(嵌套三次查询语句):
select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))
同样,将这个句嵌套五次就可以取出第五名学生成绩:
select min(A) AS A5 from grade where A>(select min(A) AS A4 from grade where A>(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))))
最后一步,写一个语句,取上次者之间的值,最终结果是:
select A from grade where A>=(...) and A<=(.....)
第一个括号用步骤一的语句,第二个括号用步骤二的语句,结果是:
select A from grade where A>=(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))) and A<=(
select min(A) AS A5 from grade where A>(select min(A) AS A4 from grade where A>(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade)))))
结果经过验证,没有问题.
㈢ 请教一个问题,SQL怎么查询出排名第三的人
通过一条SQL选出排列第三的所有人,我可以把思路写给你,自己调试完善下。
第一步,从大到小选出没有重复的分数:select DISTINCT corse from tb order by corse desc
第二步,从小到大选出前三位:select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse
第三步,选出第三位:select top 1 corse from (select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse)
第四步,选出所有第三名的人:select * from (select top 1 corse from (select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse))
㈣ SQL语句:查询各班成绩前3的同学姓名
分析如下:
可以用row_number函数来解决。
1、创建测试表,插入数据:
(资料来源:网络:SQL语句)
㈤ SQL:选课表(学号,课程号,成绩),现要查询成绩最高的三个学生的学号、课程号和成绩,包括并列情况
select * from 选课 where 成绩>=(select 成绩 from (select 成绩,row_number()over(order by 成绩 desc nulls last ) r from 选课) where r=3) order by 成绩 desc。
考虑了并列关系,原理是先求出第三名同学的成绩,然后与第三名同学的成绩相等的同学认为等同于第三名,最后输出的是前三名同学,和第三名并列的也一并输出。如果看不懂里面某个代码可以告诉我,我用的是ORACLE。
㈥ SQL 怎样查询 单科成绩排名第3名的学生
写个笨点的方法,
SELECT * INTO #TempA FROM score ORDER BY degree DESC
SELECT TOP 1 * FROM #TempA WHERE degree NOT IN(SELECT TOP 2 degree FROM #TempA )
㈦ sql 数据库如何选取最小值,第二最小值,第三最小值........
排序后使用top1将排名第一的去除就是排名第二的,将排名前2的去除就是排名第三的
如同分页的查询一样
㈧ sql查询第几名的语句
select * from score as t1 where
(select count(*) from score as t2 where t2.subject=t1.subject and t2.score>=t1.score)=3
错了,上面是每科成绩第三,看下面的
select top 1 * from
(select top 3 avg(score) as avgscore,name from score group by name order by avgscore desc)
order by avgscore
㈨ 10万条成绩数据要查出第一名和第三名,怎样写sql语句最好
先无序查出所有数据,然后自己做3次冒泡排序就可以选出来了....电脑运算量只有30万次.......- -