这有什么不对

时间:2013-02-28 04:29:38

标签: mysql sql

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')

2 个答案:

答案 0 :(得分: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 ;

答案 1 :(得分:0)

在返回

之前关闭'If'语句