在用MySQL(版本是8.0以上的) case分支语句出现报错,只要是用case就会,简单的分支语句也是如此,大家帮忙看下,如下图
这是其中一个存储过程脚本
create procedure proc_test9(in score int)
begin
case
when score > 90 and score <= 100 then select 'a';
when score > 80 then select 'b';
when score > 70 then select 'c';
else select 'd';
end case;
end;
创建存储过程主要在开头添加:DELIMITER $$,end后面也要有$$.可以参看下面执行:
-- 创建存储过程
DELIMITER $$
CREATE PROCEDURE proc_test9(IN score INT)
BEGIN
SELECT (CASE WHEN (score > 90 AND score <= 100) THEN 'a'
WHEN score > 80 THEN 'b'
WHEN score > 70 THEN 'c'
ELSE 'd'
END);
END $$
-- 删除存储过程
DROP PROCEDURE proc_test9
-- 调用存储过程
CALL proc_test9(150);
执行输出结果:
报错内容复制出来发给我
去掉所有分号试试,不能随便加分号
DELIMITER $$
CREATE PROCEDURE GetCustomerShipping(
in p_customerNumber int(11),
out p_shiping varchar(50))
BEGIN
DECLARE customerCountry varchar(50);
SELECT country INTO customerCountry
FROM customers
WHERE customerNumber = p_customerNumber;
CASE customerCountry
WHEN 'USA' THEN
SET p_shiping = '2-day Shipping';
WHEN 'Canada' THEN
SET p_shiping = '3-day Shipping';
ELSE
SET p_shiping = '5-day Shipping';
END CASE;
END$$