4

我在第 12 行(在 endif 语句中)收到一个错误。我相信我在 IF 或 ELSE 中做错了什么,有人可以帮助我吗?

DELIMITER $$

CREATE FUNCTION TEST (`param` INT) 
RETURNS INT 
DETERMINISTIC
BEGIN
    DECLARE `var` INT;

    SET `var` = 1;

    IF `param` > 0 THEN
        SET `var` = `var` + `param`;
    END IF;

    RETURN `var`;
END$$

编辑:(与 case 而不是 if 相同的功能,同样的问题)

DELIMITER $$

CREATE FUNCTION TEST (`param` INT) 
RETURNS INT 
DETERMINISTIC
BEGIN
    DECLARE `var` INT;

    SET `var` = 1;

    SET `var` = 
        CASE
            WHEN `param` > 0 THEN `var` + `param` ELSE `var`
        END ;

    RETURN `var`;
END$$
4

2 回答 2

7

试试这个:

BEGIN
    DECLARE `var` INT;

    SET var = 
      CASE
        WHEN param > 0 THEN var + 1 ELSE var 
      END ;

    RETURN var;
END$$
于 2012-09-26T09:30:52.147 回答
1

发现这是 PHPMyAdmin 中的一个错误,如果我使用“添加例程”添加该函数,它就起作用了!

于 2012-09-26T10:47:10.080 回答