IF statement

The IF statement executes different sets of SQL statements based on the result of search conditions.

Syntax

Click to skip syntax diagram
Read syntax diagramSkip visual syntax diagram>>-+--------+--IF--search-condition--THEN----------------------->
   '-label:-'
 
   .-----------------------------.
   V                             |
>----SQL-procedure-statement-- ;-+------------------------------>
 
   .---------------------------------------------------------------------.
   V                                                                     |
>----+-----------------------------------------------------------------+-+-->
     |                                 .-----------------------------. |
     |                                 V                             | |
     '-ELSEIF--search-condition--THEN----SQL-procedure-statement-- ;-+-'
 
>--+---------------------------------------+--END IF-----------><
   |       .-----------------------------. |
   |       V                             | |
   '-ELSE----SQL-procedure-statement-- ;-+-'
 

Description

label
Specifies the label for the IF statement. The label name cannot be the same as another label within the same scope. For more information, see Labels.
search-condition
Specifies the search-condition for which an SQL statement should be executed. If the condition is unknown or false, processing continues to the next search condition, until either a condition is true or processing reaches the ELSE clause.
SQL-procedure-statement
Specifies an SQL statement that should be executed if the preceding search-condition is true.

Example

The following SQL procedure accepts two IN parameters: an employee number and an employee 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
   MODIFIES SQL DATA
   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 


[ Top of Page | Previous Page | Next Page | Contents | Index ]