5

MySQL で 10 進数の等級を文字の等級に変換する関数を作成しようとすると、構文エラーで問題が発生します。

問題は何ですか?

エラー 1064 (42000): SQL 構文にエラーがあります。near 'conv(gpa DOUBLE) RETURNS CHAR BEGIN
DECLARE grade CHAR;を使用する正しい構文については、mySQL サーバーのバージョンに対応するマニュアルを確認してください。
SELECT CASE WHEN gp' at line 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 $
4

1 に答える 1

3

終わり近くにセミコロンがありません:

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また、この名前はすでに別の意味を持っているため、おそらく使用しないでください。

于 2010-03-04T22:28:52.513 に答える