首页 > 解决方案 > 我在 mysql 创建函数语句中遇到错误

问题描述

DROP FUNCTION IF EXISTS PortName;
CREATE FUNCTION PortName(port INT) RETURNS VARCHAR(3) CHARSET latin1
BEGIN
    DECLARE x VARCHAR(3);
    CASE port;
       WHEN 996 THEN SET x = 'RP';
       WHEN 995 THEN SET x = 'IA';
       WHEN 990 THEN SET x = 'K1';
       WHEN 989 THEN SET x = 'K2';
       WHEN 988 THEN SET x = 'K3';
       WHEN 986 THEN SET x = 'NG';
       WHEN 985 THEN SET x = 'NW';
       WHEN 984 THEN SET x = 'N2';
       WHEN 983 THEN SET x = 'N3';
       ELSE SET x = 'NA';
    RETURN x;
END;

标签: mysqlmysql-error-1064

解决方案


和语句;之间不应该有。最后你需要。CASE portWHENEND CASE;

DROP FUNCTION IF EXISTS PortName;
CREATE FUNCTION PortName(port INT) RETURNS VARCHAR(3) CHARSET latin1
BEGIN
    DECLARE x VARCHAR(3);
    CASE port
       WHEN 996 THEN SET x = 'RP';
       WHEN 995 THEN SET x = 'IA';
       WHEN 990 THEN SET x = 'K1';
       WHEN 989 THEN SET x = 'K2';
       WHEN 988 THEN SET x = 'K3';
       WHEN 986 THEN SET x = 'NG';
       WHEN 985 THEN SET x = 'NW';
       WHEN 984 THEN SET x = 'N2';
       WHEN 983 THEN SET x = 'N3';
       ELSE SET x = 'NA';
    END CASE;
    RETURN x;
END;

有关. _ _CASE


推荐阅读