2013-02-28 27 views
0
CREATE FUNCTION `work_exp`(id int(11)) RETURNS varchar(255) 
BEGIN 
DECLARE sid varchar(255) 
SELECT group_concat(company_name) INTO sid FROM work_exp where studentid=id 
IF(sid>0) THEN 
RETURN (sid) 
ELSE 
RETURN ('0') 

回答

4

原因語句失敗:

  • 你還沒有改變分隔符
  • 你還沒有;
  • 結束的語句,你還沒有關閉

查詢:

DELIMITER $$ 
CREATE FUNCTION `work_exp`(id int) 
RETURNS varchar(255) 
BEGIN 

    SET @sid := (SELECT group_concat(DISTINCT company_name) 
       FROM work_exp 
        where studentid=id); 

    IF (CHAR_LENGTH(@sid) <= 0 OR @sid IS NULL) THEN 
     SET @sid := 0; 
    END IF; 

    RETURN @sid; 

END $$ 
DELIMITER ; 
+0

之前聲明「如果」,這也給了錯誤您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,在第4行''附近使用正確的語法 – 2013-02-28 04:58:39

+0

@ user2035301查看我的更新答案。 – 2013-02-28 05:00:41