我在mysql创建函数语句[关闭]中得到错误信息。

问题描述 投票:0回答:1
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;
mysql mysql-error-1064
1个回答
0
投票

不应该有 ; 之间 CASE portWHEN 语句。而你需要 END 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;

https:/dev.mysql.comdocrefman8.0encase.html。 语法的 CASE.

© www.soinside.com 2019 - 2024. All rights reserved.