CREATE PROCEDURE sp_case(input_number INT)
BEGIN
DECLARE c int;
-- SELECT input_number as input_number;
-- SELECT (input_number > 0 AND input_number < 5);
SELECT 2;
-- SELECT (input_number > 5 AND input_number < 10);
CASE input_number
WHEN input_number > 0 AND input_number < 5 THEN
SET c = 0;
WHEN input_number > 5 AND input_number < 10 THEN
SET c = 1;
END CASE;
SELECT c;
ENDCALL sp_case(8)
结果报错: Case not found for CASE statement
select 2 也没有打印出来。
SET c = 0;
CASE WHEN input_number > 5 AND input_number < 10 THEN
SET c = 1;试试
mysql>
mysql> CREATE PROCEDURE sp_case(input_number INT)
-> BEGIN
-> DECLARE c int;
->
-> CASE
-> WHEN input_number > 0 AND input_number < 5 THEN
-> SET c = 0;
-> WHEN input_number > 5 AND input_number < 10 THEN
-> SET c = 1;
-> END CASE;
->
-> SELECT c;
-> END
->
-> //
Query OK, 0 rows affected (0.03 sec)mysql>
mysql> delimiter ;
mysql> CALL sp_case(8);
+------+
| c |
+------+
| 1 |
+------+
1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec)mysql>