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

Я испытываю затруднения из-за синтаксической ошибки при попытке создать функцию в 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 $
5
задан Jon Erickson 4 March 2010 в 22:29
поделиться

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

3
ответ дан 15 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: