2010-03-04 3 views
5

Je rencontre des problèmes avec une erreur de syntaxe lorsque j'essaie de créer une fonction dans MySQL pour convertir une note décimale en note de lettre.Erreur de syntaxe avec la fonction de requête mySQL pour convertir la note décimale en une note de qualité

Quel pourrait être le problème?

ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à la version de votre serveur mySQL pour la bonne syntaxe à utiliser près de 'conv (gpa DOUBLE) RETURNS CHAR BEGIN
DECLARE grade CHAR;
SELECT CASE QUAND gp » à la ligne 1

Voici mon code:

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 $ 

Répondre

3

vous manque un point-virgule à la fin:

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; 

En outre, vous probablement ne devrait pas utiliser le nom conv car cela signifie déjà something else.

+0

Merci! J'ai essayé le point-virgule avant mais c'était juste le nom de ma fonction! Merci beaucoup! :) –

Questions connexes