Синтаксическая ошибка с функцией запроса mySQL для преобразования десятичной оценки в буквенную оценку - PullRequest
5 голосов
/ 05 марта 2010

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

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

ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'conv (gpa DOUBLE) ВОЗВРАЩАЕТ ЧАР НАЧАТЬ
ОБЪЯВИТЬ класс CHAR;
ВЫБЕРИТЕ СЛУЧАЙ КОГДА 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 $

1 Ответ

3 голосов
/ 05 марта 2010

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

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

...