2010-03-04 9 views
5

Ich habe Probleme mit einem Syntaxfehler beim Versuch, eine Funktion in MySQL zu erstellen, um einen Dezimalgrad in einen Buchstabengrad zu konvertieren.Syntaxfehler mit mySQL-Abfragefunktion zum Konvertieren von Dezimalgrad in einen Buchstaben Grad

Was könnte das Problem sein?

Fehler 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer mySQL-Serverversion entspricht, damit die richtige Syntax in der Nähe von 'conv (gpa DOUBLE) verwendet werden kann. RETURNS CHAR BEGIN
DECLARE Klasse CHAR;
SELECT CASE WHEN gp‘at line 1

Hier ist mein 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 $ 

Antwort

3

Sie ein Semikolon am Ende fehlt:

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; 

Auch Sie wahrscheinlich sollte der Name conv nicht verwendet werden, da dies bereits something else bedeutet.

+0

Danke! Ich habe das Semikolon vorher versucht, aber es war nur der Name meiner Funktion! Vielen Dank! :) –