mySQL查询函数将十进制级别转换为字母级别时出现语法错误

mySQL查询函数将十进制级别转换为字母级别时出现语法错误,mysql,syntax-error,mysql-error-1064,Mysql,Syntax Error,Mysql Error 1064,当我试图在MySQL中创建一个函数来将十进制级别转换为字母级别时,我遇到了语法错误的问题 可能是什么问题 错误1064(42000):您的SQL语法有错误;查看与您的mySQL服务器版本对应的手册,了解使用near'conv(gpa DOUBLE)的正确语法 返回字符 开始 声明等级字符 当gp'位于第1行时选择案例 这是我的密码: delimiter $ CREATE FUNCTION conv(gpa DOUBLE) RETURNS CHAR BEGIN DECLARE grade

当我试图在MySQL中创建一个函数来将十进制级别转换为字母级别时,我遇到了语法错误的问题

可能是什么问题

错误1064(42000):您的SQL语法有错误;查看与您的mySQL服务器版本对应的手册,了解使用near'conv(gpa DOUBLE)的正确语法 返回字符 开始
声明等级字符
当gp'位于第1行时选择案例

这是我的密码:

delimiter $

CREATE FUNCTION conv(gpa DOUBLE) 
RETURNS CHAR
BEGIN 

DECLARE grade CHAR; 

SELECT CASE WHEN gpa BETWEEN 3.5 AND 4.0 THEN 'A' 
WHEN gpa BETWEEN 3.0 AND 3.4 THEN 'B' 
WHEN gpa BETWEEN 2.5 AND 2.9 THEN 'C' 
WHEN gpa BETWEEN 2.0 AND 2.4 THEN 'D' 
ELSE 'F' 
END INTO grade 

RETURN grade;

END $

您在结尾处缺少一个分号:

SELECT CASE WHEN gpa BETWEEN 3.5 AND 4.0 THEN 'A' 
WHEN gpa BETWEEN 3.0 AND 3.4 THEN 'B' 
WHEN gpa BETWEEN 2.5 AND 2.9 THEN 'C' 
WHEN gpa BETWEEN 2.0 AND 2.4 THEN 'D' 
ELSE 'F' 
END INTO grade;

另外,您可能不应该使用名称
conv
,因为这已经是它的意思了。

谢谢!我以前试过分号,但它只是我函数的名称!谢谢!:)