다음 코드는 나에게 좋지만 한 지점으로 작동합니다. 이 기능은 시험 성적에 따라 학생의 학년 수준을 표시해야하지만 나머지 두 문장을 실행하지 않으므로 학생의 점수가 50 점 미만인 경우 기능에 "통과"가 계속 표시됩니다.코드가 점에 작동합니다.
CREATE OR REPLACE FUNCTION stud_Result(integer,numeric) RETURNS text
AS
$$
DECLARE
stuNum ALIAS FOR $1;
grade ALIAS FOR $2;
result TEXT;
BEGIN
IF grade >= 70.0 THEN SELECT 'distinction' INTO result FROM student,entry
WHERE student.sno = entry.sno AND student.sno = stuNum;
ELSIF grade >=50.0 OR grade <=70.0 THEN SELECT 'pass' INTO result FROM student,entry
WHERE student.sno = entry.sno AND student.sno = stuNum;
ELSIF grade >0 OR grade< 50.0 THEN SELECT 'fail' INTO result FROM student,entry
WHERE student.sno = entry.sno AND student.sno = stuNum;
ELSE SELECT 'NOT TAKEN' INTO result FROM student,entry
WHERE student.sno = entry.sno AND student.sno = stuNum;
END IF;
RETURN result;
END;$$
LANGUAGE PLPGSQL;
누구든지 문제를 지적 할 수 있습니까?
내가 너라면, 첫 번째 t 내가 시도 할 수있는 힌지는 더 작은 * 기능이 될 것이다. 아무 것도하지 않는 사람을 만드십시오. 그런 다음 (a) 함수를 만드는 데 문제가 있거나 (b) 작성한 함수에 문제가 있는지 여부를 알 수 있습니다. –