2010-03-04 32 views
5

Tôi đang gặp rắc rối với lỗi cú pháp khi cố gắng tạo một hàm trong MySQL để chuyển đổi một lớp thập phân thành một chữ cái.Lỗi cú pháp với hàm truy vấn mySQL để chuyển đổi số thập phân thành một chữ cái

Điều gì có thể là vấn đề?

ERROR 1064 (42000): Bạn có lỗi trong cú pháp SQL; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ mySQL của bạn cho đúng cú pháp để sử dụng gần 'conv (gpa DOUBLE) RETURNS CHAR BEGIN
DECLARE grade CHAR;
CHỌN TRƯỜNG HỢP KHI gp' tại dòng 1

Đây là mã của tôi:

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 $ 

Trả lời

3

Bạn đang thiếu một dấu chấm phẩy gần cuối cùng:

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; 

Ngoài ra, bạn có lẽ không nên sử dụng tên conv vì điều này đã có nghĩa là something else.

+0

Cảm ơn! Tôi đã thử dấu chấm phẩy trước đây nhưng nó chỉ là tên của chức năng của tôi! Cảm ơn nhiều! :) –

Các vấn đề liên quan