(7) 利用游标输出“计算机”专业学生的成绩。并用while结构来测试全局变量@@Fetch_Status的返回值。 输出格式如下: 学号------------姓名-----------专业---------课程名字------------成绩
时间: 2023-11-05 19:06:15 浏览: 117
Oracle 遍历游标的四种方式汇总(for、fetch、while、BULK COLLECT)
根据提供的引用内容,可以使用以下SQL语句来利用游标输出“计算机”专业学生的成绩,并用while结构来测试全局变量@@Fetch_Status的返回值:
```
DECLARE @student_id INT, @student_name VARCHAR(30), @major VARCHAR(30), @course_name VARCHAR(30), @score INT
DECLARE student_cursor CURSOR FOR
SELECT s.student_id, s.student_name, s.major, c.course_name, c.score
FROM dbo.Students s
JOIN dbo.Courses c ON s.student_id = c.student_id
WHERE s.major = '计算机'
OPEN student_cursor
FETCH NEXT FROM student_cursor INTO @student_id, @student_name, @major, @course_name, @score
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT CAST(@student_id AS VARCHAR(10)) + '------------' + @student_name + '-----------' + @major + '---------'
+ @course_name + '------------' + CAST(@score AS VARCHAR(10))
FETCH NEXT FROM student_cursor INTO @student_id, @student_name, @major, @course_name, @score
END
CLOSE student_cursor
DEALLOCATE student_cursor
```
输出格式如下:
```
学号------------姓名-----------专业---------课程名字------------成绩
1------------张三-----------计算机---------数据库------------90
1------------张三-----------计算机---------编程语言------------85
2------------李四-----------计算机---------数据库------------92
2------------李四-----------计算机---------编程语言------------88
3------------王五-----------计算机---------数据库------------87
3------------王五-----------计算机---------编程语言------------91
```
阅读全文