mysql 分支语句case报错

在用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;

img

img

创建存储过程主要在开头添加: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);

执行输出结果:

img


如有帮助,欢迎采纳!

报错内容复制出来发给我

去掉所有分号试试,不能随便加分号


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$$