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

2 回答 2

4

声明失败的原因:

  • 你没有改变分隔符
  • 你还没有结束陈述;
  • 你还没有结束IF声明END

询问:

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 ;
于 2013-02-28T04:31:05.073 回答
0

在返回之前关闭'If'语句

于 2013-02-28T04:32:38.893 回答