Синтаксическая ошибка с функцией запроса mySQL для преобразования десятичной оценки в буквенную оценку

У меня возникают проблемы с синтаксической ошибкой при попытке создать функцию в MySQL для преобразования десятичной оценки в буквенную.

В чем может быть проблема?

ОШИБКА 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 $

person Community    schedule 04.03.2010    source источник


Ответы (1)


Вам не хватает точки с запятой в конце:

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, поскольку оно уже означает что-то еще.

person Mark Byers    schedule 04.03.2010
comment
Спасибо! Я пробовал точку с запятой раньше, но это было просто имя моей функции! Спасибо большое! :) - person ; 05.03.2010