查询考试成绩前十名的学生编号和学生成绩用SQL Server怎么查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询考试成绩前十名的学生编号和学生成绩用SQL Server怎么查询相关的知识,希望对你有一定的参考价值。

有两个表一个是成绩表,一个是补考表,成绩表里有学生编号StudentID,学生成绩Score,补考表里有补考学生编号StudentID,补考日期inputdate(假设学生是同一个班的,补考成绩不计入前十名)

应该首先排除掉挂科的学生,然后按成绩倒序排列取前十位考生的成绩和编号。
select top 10 studentid,stcore from 成绩表
where studentid not in (select studentid from 补考表 )order by stcore desc,studentid
参考技术A select top 10 学生编号,score from 成绩表,补考表 where Studentid is not in (select 学号 from 补考表)order by 考试成绩 参考技术B select top 10 学生编号,score from 成绩表 order by 考试成绩 参考技术C select top 10 StudentID,Score
from 成绩表
order by Score desc

用sql语句,查询每个班级成绩排名前三名的学生姓名

1、首先在打开的SQL Server中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。

2、此时就能利用Select和From语句,查询数据,如下图所示。

3、但是要查找姓名中包含有【张】,那么不能用等号,如下图所示。

4、因此一定要必须使用Like关键字,才能查询SQL的数据。

5、这个时候,如果单对【张】字后加个百分号是不允许的,这样只能查找姓张的数据。

6、如果想要前后都有关键字【张】,那么一定要在前后都加百分号,就能实现模糊查找姓名。

参考技术A 你的数据结构是怎么样的呢?
是否已经计算了总分
假设已经计算了总分
前三名所有记录 列可以自定义 (列出前3名成绩总分 3种主流数据库写法)
sqlserver数据库:
select top 3 from 成绩表 order by 总分 desc
mysql数据库:
select * from 成绩表 order by desc 总分 desc limit 3
oracle数据库:
select * from 成绩表 order by desc 总分 ROWNUM <= 3

如果说没有给出总分
需要先计算总分
select (语文+数学+。。。)as total top 3 from 成绩表 order by total desc
然后其他数据库自己灵活运用你自己所使用的数据库的上述方法追问

在Oracle中,本题是先把班级分组还是先按成绩排序

追答

先分组分组 然后再排序

参考技术B select top 3 * from 成绩 group by 班级 order by 成绩 参考技术C 思路是先分组后按成绩排序

以上是关于查询考试成绩前十名的学生编号和学生成绩用SQL Server怎么查询的主要内容,如果未能解决你的问题,请参考以下文章

sql查出每个科目成绩前三名

mysql 查询每个班的前十名的成绩

sql 语句编写 查询参加全部科目考试的学生及其成绩 201601 张三 语文 82

sql数据库考试试题

sql数据库考试试题

mysql版 查询各科成绩前三名的记录:(不考虑成绩并列情况)