编写SQL语句:查询选修了‘c1’课程的学生的学号和姓名,按成绩的降序排列。
时间: 2023-06-06 21:08:28 浏览: 67
可以的,以下是SQL语句:
SELECT 学号, 姓名 FROM 学生表
WHERE 学号 IN (SELECT 学号 FROM 选修表 WHERE 课程名='c1')
ORDER BY 成绩 DESC;
相关问题
Sql语句查询选修了课程C1,C5的学生学号
可以使用如下的 SQL 语句查询选修了课程 C1 和 C5 的学生学号:
SELECT 学生学号
FROM 选修表
WHERE 课程名称 IN ('C1', 'C5')
GROUP BY 学生学号
HAVING COUNT(DISTINCT 课程名称) = 2;
查询至少选修了刘晨选修的全部课程的学生学号和姓名。
假设刘晨的全部选修课程编号为C1、C2、C3,可以使用如下SQL语句查询至少选修了刘晨选修的全部课程的学生学号和姓名:
```
SELECT s.学号, s.姓名
FROM 学生表 s
WHERE NOT EXISTS (
SELECT c.课程编号
FROM 选课表 c
WHERE c.学号 = s.学号 AND c.课程编号 IN ('C1', 'C2', 'C3')
HAVING COUNT(DISTINCT c.课程编号) < 3
)
```
该语句的逻辑为:首先查询所有学生的学号和姓名,然后通过子查询筛选出选修了刘晨全部选修课程的学生,最后将符合条件的学生的学号和姓名输出。