The IF statement selects an execution path based on the evaluation of a condition.
Syntax
>>-IF--search-condition--THEN----------------------------------->
.-------------------------------.
V |
>--------SQL-procedure-statement--;---+------------------------->
.--------------------------------------------------------------------------.
V |
>--------+--------------------------------------------------------------------+--+>
| .-------------------------------. |
| V | |
'-ELSEIF--search-condition--THEN-----SQL-procedure-statement--;---+--'
>-----+------------------------------------------+--END IF-----><
| .-------------------------------. |
| V | |
'-ELSE-----SQL-procedure-statement--;---+--'
Description
Examples
The following SQL procedure accepts two IN parameters: an employee number employee_number and an employee rating rating. Depending on the value of rating, the employee table is updated with new values in the salary and bonus columns.
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