5

尝试在 MySQL 中创建函数以将十进制等级转换为字母等级时,我遇到了语法错误问题。

可能是什么问题?

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 mySQL 服务器版本相对应的手册,以了解在 'conv(gpa DOUBLE) RETURNS CHAR BEGIN
DECLARE Grade CHAR; 附近使用的正确语法;
SELECT CASE WHEN 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 $
4

1 回答 1

3

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

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,因为这已经意味着其他东西

于 2010-03-04T22:28:52.513 回答