IF statement in MySQL stored function is erroneous

I get an error on line 12 (in the endif statement). I believe that I am doing something wrong in IF or ELSE, can someone help me?

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$$ 

EDIT: (same function with case, not the same problem)

 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
source share
2 answers

Try this instead:

 BEGIN DECLARE `var` INT; SET var = CASE WHEN param > 0 THEN var + 1 ELSE var END ; RETURN var; END$$ 
+7
source

Found that it was an error in PHPMyAdmin, if I added a function using the "add procedure", it worked!

+1
source

Source: https://habr.com/ru/post/1436331/


All Articles