FOR - ENDFOR Example
The following database procedure, avgsal_by_dept, returns rows containing the department name, average salary in the department, and count of employees in the department. Any unexpected error from the SELECT statement terminates the loop:
CREATE PROCEDURE avgsal_by_dept
result row (CHAR(15), FLOAT, INT) AS
DECLARE
deptname CHAR(15);
avgsal FLOAT;
empcount INT;
err INT;
BEGIN
err = 0;
FOR SELECT d.dept, AVG(e.salary), COUNT(*) INTO :deptname, :avgsal, :empcount
FROM department d, employee e
WHERE e.deptid = d.deptid
GROUP BY d.deptid do
IF iierrornumber > 0 THEN
err = 1;
ENDLOOP;
ENDIF;
return row(:deptname, :avgsal, :empcount);
ENDFOR;
RETURN :err;
END
Last modified date: 11/09/2022