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;
不应该有 ;
之间 CASE port
和 WHEN
语句。而你需要 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
.