IF ステートメントは、条件の評価に基づいて実行パスを選択します。
構文
>>-IF--search-condition--THEN-----------------------------------> .-------------------------------. V | >--------SQL-procedure-statement--;---+-------------------------> .--------------------------------------------------------------------------. V | >--------+--------------------------------------------------------------------+--+> | .-------------------------------. | | V | | '-ELSEIF--search-condition--THEN-----SQL-procedure-statement--;---+--' >-----+------------------------------------------+--END IF----->< | .-------------------------------. | | V | | '-ELSE-----SQL-procedure-statement--;---+--'
説明
例
以下の SQL プロシージャーでは、 2 つの IN パラメーター (従業員番号 employee_number および従業員評定 rating) を使用します。 rating の値によっては、 employee 表の salary および bonus 列が、新しい値に更新されます。
CREATE PROCEDURE UPDATE_SALARY_IF (IN employee_number CHAR(6), INOUT rating SMALLINT) LANGUAGE SQL BEGIN DECLARE not_found CONDITION FOR SQLSTATE '02000'; DECLARE EXIT HANDLER FOR not_found SET rating = -1; IF rating = 1 THEN UPDATE employee SET salary = salary * 1.10, bonus = 1000 WHERE empno = employee_number; ELSEIF rating = 2 THEN UPDATE employee SET salary = salary * 1.05, bonus = 500 WHERE empno = employee_number; ELSE UPDATE employee SET salary = salary * 1.03, bonus = 0 WHERE empno = employee_number; END IF; END