针对“teaching”库,利用流程控制语句,查询学号为201602001的学生的各科成绩,如果没有这个学生的选课信息,就显示“此学生无成绩”。使用SQL语句实现
时间: 2024-02-19 20:58:15 浏览: 267
假设学生信息和成绩信息分别存储在`students`和`grades`表中,其中`grades`表中包含了学生学号、科目和成绩三个字段。可以使用如下SQL语句查询学号为201602001的学生的各科成绩:
```sql
SELECT name, subject, score
FROM students JOIN grades ON students.id = grades.id
WHERE students.id = '201602001';
```
这条SQL语句首先将`students`表和`grades`表按照学生学号进行内连接(INNER JOIN),然后在连接后的表中筛选出学号为201602001的记录,最后输出学生姓名、科目和成绩三个字段。
如果没有学号为201602001的学生的选课信息,则不会有任何输出。可以在SQL语句中加入判断条件,使用如下SQL语句查询学号为201602001的学生的各科成绩,如果没有该学生的选课信息,则输出"此学生无成绩":
```sql
SELECT name, subject, score
FROM students JOIN grades ON students.id = grades.id
WHERE students.id = '201602001';
IF @@ROWCOUNT = 0
PRINT '此学生无成绩';
```
这条SQL语句和上面的语句类似,只不过在查询后加入了一个判断条件。`@@ROWCOUNT`是一个系统变量,用于返回最近一条查询语句所影响的行数。如果查询结果为空,则`@@ROWCOUNT`为0,此时输出"此学生无成绩"。注意,这条SQL语句可能需要在存储过程或批处理中使用,不能直接在SQL Server Management Studio中执行。
阅读全文