2016-06-28 45 views
-2

我想在MySQL中创建下面的函数,但得到语法错误。 我无法找到解决办法,将不胜感激一些帮助MySQL函数获取语法错误

CREATE FUNCTION `test`.`pro`(depart_id int) RETURNS varchar 

BEGIN 
    DECLARE title varchar; 

if depart_id = 1 then 
    set title='IT Department'; 

else if depart_id = 2 then 
    set title='HR Department'; 

else 
    set title='Admin'; 
end if; 

return title; 


END$$ 

DELIMITER ; 
+0

你是什么语法错误? – Blank

+0

'varchar'需要一个长度 –

+0

@ 10086这是我得到的错误“你在你的SQL语法中有一个错误;检查与你的MariaDB服务器版本相对应的手册,在正确的语法附近使用'BEGIN DECLARE title varchar; 如果depart_id = 1,则 集”第3" 行 – Amlan

回答

2

你在你的脚本几个语法错误:

  • varchar的长度必须
  • 你应该定义DELIMITER $$第一个
  • 这不是else if,而是elseif

试试这个;)

DELIMITER $$ 

CREATE FUNCTION `test`.`pro`(depart_id int) RETURNS varchar(10) 

BEGIN 
    DECLARE title varchar(10); 

if depart_id = 1 then 
    set title='IT Department'; 

elseif depart_id = 2 then 
    set title='HR Department'; 

else 
    set title='Admin'; 
end if; 

return title; 

END $$ 

DELIMITER ; 
+0

谢谢,这个工作,错误是你指定的第三点,我已经给出的前两点 – Amlan