Implement complex conditional logic in stored programs. This control flow statement executes specific SQL blocks based on matching conditions.
Or:
The text on this page describes the CASE statement for . See the for details on the CASE operator outside of .
The CASE statement for implements a complex conditional construct. If a search_condition evaluates to true, the corresponding SQL statement list is executed. If no search condition matches, the statement list in the ELSE clause is executed. Each statement_list consists of one or more statements.
The CASE statement cannot have an ELSE NULL clause, and it is terminated with END CASE instead of END. implements a complex conditional construct. If a search_condition evaluates to true, the corresponding SQL statement list is executed. If no search condition matches, the statement list in the ELSE clause is executed. Each statement_list consists of one or more statements.
If no when_value or search_condition matches the value tested and the CASE statement contains no ELSE clause, a Case not found for CASE statement error results.
Each statement_list consists of one or more statements; an empty statement_list is not allowed. To handle situations where no value is matched by any WHEN clause, use an ELSE containing an empty block, as shown in this example:
The indentation used here in the ELSE clause is for purposes of clarity only and is not otherwise significant. See for more on the use of the delimiter command.
Note: The syntax of the CASE statement used inside stored programs differs slightly from that of the SQL CASE expression described in . The CASE statement cannot have an ELSE NULL clause, and it is terminated with END CASE instead of END.
The , which differs from the CASE statement described above.
The .
This page is licensed: GPLv2, originally from
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASECASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASEDELIMITER |
CREATE PROCEDURE p()
BEGIN
DECLARE v INT DEFAULT 1;
CASE v
WHEN 2 THEN SELECT v;
WHEN 3 THEN SELECT 0;
ELSE BEGIN END;
END CASE;
END;
|