PL/SQL The following PL/SQL code implements a cursor and displays the first 3 highest students’ grades in course seqid '00001'. DECLARE CURSOR c1 IS SELECT sname, grade FROM Student s JOIN Taken t ON s.sid=t.sid WHERE seqid='00001' ORDER BY grade DESC; -- my_sname VARCHAR2(40); my_sname Student.sname%TYPE; -- my_grade NUMBER(2,1); my_grade Taken.grade%TYPE; BEGIN
PL/SQL
The following PL/SQL code implements a cursor and displays the first 3 highest students’ grades in course seqid '00001'.
DECLARE
CURSOR c1 IS
SELECT sname, grade FROM Student s JOIN Taken t ON s.sid=t.sid
WHERE seqid='00001'
ORDER BY grade DESC;
-- my_sname VARCHAR2(40);
my_sname Student.sname%TYPE;
-- my_grade NUMBER(2,1);
my_grade Taken.grade%TYPE;
BEGIN
OPEN c1;
FOR i IN 1..3 LOOP
FETCH c1 INTO my_sname, my_grade;
EXIT WHEN c1%NOTFOUND; /* in case the number requested */
/* is more than the total */
/* number of enrolled students in the class */
/* display the result */
dbms_output.put_line('Name: ' || my_sname || ' ' || 'Grade: ' || my_grade);
END LOOP;
CLOSE c1;
END;
/
1. Modify the above code to output the average of the top three grades.
Trending now
This is a popular solution!
Step by step
Solved in 2 steps