假设有成绩表里面包含学生学号、课程号和成绩信息, 关系模式为:score(sno,cno,degree) 写出SQL语句: 查询Score表中的SNO、CNO及DEGREE列,其中DEGREE以别名“等级”显示,总学分在60分以下的显示不及格,61-74 (含)之间的显示合格,75-84(含)之间的显示良好,其它为优秀;
时间: 2023-07-16 17:15:00 浏览: 153
可以使用 CASE WHEN 语句来实现该需求,具体SQL语句如下:
```
SELECT sno, cno,
CASE
WHEN degree < 60 THEN '不及格'
WHEN degree >= 60 AND degree <= 74 THEN '合格'
WHEN degree >= 75 AND degree <= 84 THEN '良好'
ELSE '优秀'
END AS 等级
FROM score;
```
其中,CASE WHEN 语句会根据 degree 的取值返回不同的等级,根据题目要求将分数段分别对应为不及格、合格、良好和优秀。最终查询结果包括学生学号(sno)、课程号(cno)和成绩等级(等级)。
相关问题
假设有学生表里面包含学号、姓名、性别、生日和班级信息, 关系模式为:student(sno,sname,ssex,sbirthday,class) 有课程表里面包含课程号、课程名和教工号信息, 关系模式为:course(cno,cname,tno) 有成绩表里面包含学生学号、课程号和成绩信息, 关系模式为:score(sno,cno,degree) 写出SQL语句:查询所有选修“计算机导论”课程的“男”同学的成绩表
可以使用以下 SQL 语句查询所有选修“计算机导论”课程的“男”同学的成绩表:
```
SELECT score.sno, score.degree
FROM score
JOIN student ON score.sno = student.sno
JOIN course ON score.cno = course.cno
WHERE course.cname = '计算机导论' AND student.ssex = '男';
```
其中,使用 `JOIN` 连接三个表,筛选出选修“计算机导论”课程的学生和他们的成绩,同时筛选出性别为“男”的学生。查询结果为选修“计算机导论”课程的“男”同学的成绩表,包含学生学号和成绩信息。
假设有教师表里面包含教工号、教师名、性别、 生 日、 职称和部门信息, 关系模式为: teacher(tno,tname,tsex,tbirthday,prof,depart) 有课程表里面包含课程号、课程名和教工号信息, 关系模式为:course(cno,cname,tno) 有成绩表里面包含学生学号、课程号和成绩信息,关 系模式为:score(sno,cno,degree) 写出SQL语句:查询“张旭“教师任课的学生成绩。
可以使用以下 SQL 语句查询“张旭”教师任课的学生成绩:
```
SELECT score.sno, score.degree
FROM score
INNER JOIN course ON score.cno = course.cno
WHERE course.tno = (
SELECT tno
FROM teacher
WHERE tname = '张旭'
);
```
其中,INNER JOIN 用于连接成绩表和课程表,ON 子句用于指定连接条件,即成绩表的课程号和课程表的课程号相等。WHERE 子句用于筛选符合条件的记录,即课程表中教工号为“张旭”的记录。为了找到“张旭”教师的教工号,可以使用子查询,在教师表中查找教师名为“张旭”的记录,并返回其教工号。最后,SELECT 子句用于选择需要返回的列,即学生学号和成绩。
阅读全文