CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
Or:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
mysql>
mysql>
mysql>
mysql> DELIMITER //
mysql> CREATE FUNCTION myFunction (delivery_day INT(1)) RETURNS INT(2)
-> BEGIN
->
-> DECLARE shipping_cost INT(2) DEFAULT 0;
->
-> CASE delivery_day
-> WHEN 1 THEN
-> SET shipping_cost = 20;
-> WHEN 2 THEN
-> SET shipping_cost = 15;
-> WHEN 3 THEN
-> SET shipping_cost = 10;
-> ELSE
-> SET shipping_cost = 5;
-> END CASE;
-> RETURN shipping_cost;
->
-> END
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql>
mysql> select myFunction(1);
+---------------+
| myFunction(1) |
+---------------+
| 20 |
+---------------+
1 row in set (0.00 sec)
mysql>
mysql> select myFunction(2);
+---------------+
| myFunction(2) |
+---------------+
| 15 |
+---------------+
1 row in set (0.00 sec)
mysql>
mysql> select myFunction(3);
+---------------+
| myFunction(3) |
+---------------+
| 10 |
+---------------+
1 row in set (0.00 sec)
mysql>
mysql> drop function myFunction;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>