pl/sql 根据SC表使用CASE 将课程号替换为课程名称。
时间: 2024-05-15 20:15:38 浏览: 64
假设SC表包含以下列:学号(Sno)、课程号(Cno)、成绩(Score)。
可以使用以下PL/SQL代码将课程号替换为课程名称:
```
DECLARE
v_cno SC.Cno%TYPE;
v_cname COURSE.Cname%TYPE;
BEGIN
FOR rec IN (SELECT Sno, Cno, Score FROM SC)
LOOP
SELECT Cname INTO v_cname FROM COURSE WHERE Cno = rec.Cno;
v_cno := rec.Cno;
CASE v_cno
WHEN '001' THEN v_cname := '计算机基础';
WHEN '002' THEN v_cname := '数据结构';
WHEN '003' THEN v_cname := '数据库';
-- 其他课程
END CASE;
DBMS_OUTPUT.PUT_LINE(rec.Sno || ' ' || v_cname || ' ' || rec.Score);
END LOOP;
END;
```
这段代码会遍历SC表中的每一行,并根据课程号查询COURSE表获取课程名称。然后使用CASE语句将课程号替换为课程名称,并使用DBMS_OUTPUT输出每个学生的学号、课程名称和成绩。请注意,这里只列出了几个课程的替换规则,实际应用中需要根据具体情况进行修改。
阅读全文