大众计算机学习网

专门提供各种电脑教程

SQL查询成绩之精典语句

Admin | 2009-4-19 21:22:02 | 被阅次数 | 41935

  Sql数据查询之精典应用实例:

  假如存在如下的数据表,下面我们一起来学习几个比较常用的精典的查询方法。

自动编号

学号

姓名

课程编号

课程名称

分数

1

23

王三

003

语文

77

2

24

李四

004

数学

88

3

26

张五

003

语文

78

4

24

李四

004

数学

88

5

26

张五

006

英语

100

………….

  ①查询英语成绩从第7名到第10名的学生信息

  指导思想:选出英语成绩前10名的同学按照降序排列,然后显示前四条记录。

  1、显示课程名称是英语的学生记录

  Select * from 学生表 where(课程名称='英语');

  2、以分数对学生记录进行降序排列,显示前十名

  Select top 10 * from 学生表 order by 分数 desc

  即

  Select top 10 * from(select * from 学生表 where(课程名称='英语')) as 学生表 order by 分数 desc

  3、显示英语成绩从 第7名到第10名的学生信息

  Select top 4 * from  (Select top 10 * from (select * from 学生表 where(课程名称='英语')) as 学生表

  order by 分数 desc) as 学生表 order by 自动编号

  ②查询所有语文和数学的成绩都在前10名的学生信息

  1、筛选课程名称为语文的学生信息

  Select * from 学生表 where(课程名称='语文')

  2、显示语文成绩在前10名的学生信息

  Select top 10 * from (select * from 学生表 where(课程名称='语文')) as 学生表

  3、显示数学成绩在前10名的学生信息

  Select top 10 * from (select * from 学生表 where(课程名称='数学')) as 学生表

  4、查询所有语文和数学的成绩都在前10名的学生信息

  Select * from  (Select top 10 * from (select * from 学生表 where(课程名称='语文')) as 学生表) as a

  inner join (Select top 10 * from (select * from 学生表 where(课程名称='数学')) as 学生表) as b

  On a.自动编号=b.自动编号