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