2010-03-04 25 views
5

Tengo problemas con un error de sintaxis al intentar crear una función en MySQL para convertir una calificación decimal en una calificación de letra.Error de sintaxis con la función de consulta mySQL para convertir una calificación decimal en una calificación de letra

¿Cuál podría ser el problema?

ERROR 1064 (42000): Tiene un error en la sintaxis SQL; revise el manual que corresponde a su versión de servidor mySQL para la sintaxis correcta para usar cerca de 'conv (gpa DOUBLE) DEVOLUCIONES CHAR BEGIN
DECLARAR calificación CHAR;
SELECT CASE CUANDO gp' at line 1

Aquí está mi código:

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 $ 

Respuesta

3

te falta un punto y coma cerca del final:

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; 

Además, probablemente no debería usar el nombre conv ya que esto significa something else.

+0

Gracias! Probé el punto y coma antes, ¡pero era solo el nombre de mi función! ¡Muchas gracias! :) –

Cuestiones relacionadas