DECLARE
grade CHAR(1) := 'B';
appraisal VARCHAR2(120);
id NUMBER := 8429862;
attendance NUMBER := 150;
min_days CONSTANT NUMBER := 200;
FUNCTION Attends_this_school
(id NUMBER)
RETURN BOOLEAN
IS
BEGIN
RETURN true;
END;
BEGIN
appraisal := CASE
WHEN Attends_this_school(id) = false THEN 'N/A - Student not enrolled'
-- Have to test this condition early to detect good students with bad attendance
WHEN grade = 'F'
OR attendance < min_days THEN 'Poor (poor performance or bad attendance)'
WHEN grade = 'A' THEN 'Excellent'
WHEN grade = 'B' THEN 'Very Good'
WHEN grade = 'C' THEN 'Good'
WHEN grade = 'D' THEN 'Fair'
ELSE 'No such grade'
END;
dbms_output.Put_line('Result for student '
||id
||' is '
||appraisal);
END;
/
Using a Search Condition With a CASE Statement
0 comments:
Post a Comment