查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。sql语句
时间: 2023-12-15 16:05:40 浏览: 54
可以使用如下 SQL 语句查询:
```
SELECT *
FROM score
WHERE cno = '3-105' AND score > (
SELECT score
FROM score
WHERE sno = '109' AND cno = '3-105'
)
```
这条 SQL 语句使用了一个子查询来获取学号为“109”且选修了“3-105”课程的学生的成绩,然后在外层查询中筛选选修了“3-105”课程且成绩高于该成绩的所有同学的记录。
相关问题
查询每位学生选修课程的成绩高于其所选修课程的平均成绩的学生学号和课程号;SQL语句
可以使用嵌套查询来实现该功能。首先,查询每门课程的平均成绩,然后再查询每位学生选修课程的成绩是否高于该课程平均成绩,最后筛选出符合条件的学生学号和课程号即可。具体的SQL语句如下:
```
SELECT SC.student_id, SC.course_id
FROM score AS SC
WHERE SC.score > (
SELECT AVG(score)
FROM score
WHERE course_id = SC.course_id
)
```
查询选修oracle课程并且成绩高于oracle课程平均成绩的学生
好的,你可以使用以下 SQL 语句来查询选修 Oracle 课程且成绩高于该课程平均成绩的学生:
```
SELECT s.student_id, s.student_name, c.course_name, sc.score
FROM student s
JOIN score sc ON s.student_id = sc.student_id
JOIN course c ON sc.course_id = c.course_id
WHERE c.course_name = 'Oracle' AND sc.score > (
SELECT AVG(sc2.score)
FROM score sc2
JOIN course c2 ON sc2.course_id = c2.course_id
WHERE c2.course_name = 'Oracle'
)
```
上述 SQL 语句中,使用 `SELECT` 查询语句查询符合条件的学生信息。首先,使用 `JOIN` 连接三张表(student、score、course),通过学生 ID、课程 ID 进行关联。接着,使用 `WHERE` 子句筛选选修 Oracle 课程的成绩,并且成绩高于该课程平均成绩的学生。在 `WHERE` 子句中,使用子查询获取 Oracle 课程的平均成绩,并与当前行的成绩进行比较。最后,使用 `SELECT` 子句返回学生 ID、学生姓名、课程名称、成绩等信息。