sql利用select case将某门课的成绩显示为五分制,其中课程编号在表c中,成绩在表sc中
时间: 2024-04-30 11:24:32 浏览: 7
可以使用如下的 SQL 语句来将某门课的成绩显示为五分制:
```
SELECT sc.sid,
sc.cid,
c.cname,
CASE
WHEN sc.score >= 90 THEN '优'
WHEN sc.score >= 80 THEN '良'
WHEN sc.score >= 70 THEN '中'
WHEN sc.score >= 60 THEN '及格'
ELSE '不及格'
END AS 'grade'
FROM sc
INNER JOIN c
ON sc.cid = c.cid
WHERE c.cname = '某门课程名';
```
上述语句中,使用了 SELECT CASE 语句对成绩进行了转换,将分数在一定范围内的成绩转换为相应的五分制等级。同时,使用了 INNER JOIN 来连接表 sc 和表 c,通过 WHERE 子句筛选出指定课程名的成绩信息。
相关问题
sql利用select case将某门课的成绩显示为五分制
可以使用以下 SQL 语句将某门课的成绩显示为五分制:
```
SELECT
CASE
WHEN grade >= 90 THEN 'A'
WHEN grade >= 80 AND grade < 90 THEN 'B'
WHEN grade >= 70 AND grade < 80 THEN 'C'
WHEN grade >= 60 AND grade < 70 THEN 'D'
ELSE 'F'
END AS "五分制成绩"
FROM scores
WHERE course = '某门课';
```
其中,`scores` 是存储成绩的表,`grade` 是成绩的列名,`course` 是某门课的名称。在 `CASE` 语句中,根据成绩的范围返回相应的等级,最后将等级显示为五分制成绩。
在成绩表中,查询每门课的考生人数,并按照人数降序显示字段为课程号和人数。
假设成绩表格的结构如下:
| 课程号 | 学生号 | 分数 |
| ------ | ------ | ---- |
| 1 | 001 | 90 |
| 1 | 002 | 85 |
| 2 | 001 | 75 |
| 2 | 002 | 80 |
| 2 | 003 | 95 |
| 3 | 001 | 70 |
| 3 | 002 | 60 |
| 3 | 003 | 80 |
| 3 | 004 | 85 |
可以使用如下的 SQL 查询语句来实现:
```sql
SELECT 课程号, COUNT(*) AS 人数
FROM 成绩表
GROUP BY 课程号
ORDER BY 人数 DESC;
```
其中,`COUNT(*)` 表示统计每个课程号出现的次数,即考生人数。`GROUP BY` 语句按照课程号对结果进行分组,`ORDER BY` 语句按照人数降序排列结果。