DELIMITER //
CREATE FUNCTION `nvl`(`expr1` text,`expr2` text) RETURNS text CHARSET utf8
BEGIN
RETURN case when expr1 = '' or expr1 is NULL then expr2 ELSE expr1 end case
END ;
//
DELIMITER ;
仍然,报道:
错误1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'case附近使用正确的语法 结束'第3行'
为什么呢?我想不出来......
答案 0 :(得分:1)
当您说end case
时,您正在使用case
statement的语法。
你想要的是一个case
expression,它只用end
终止。
答案 1 :(得分:0)
删除多余的"案例"最后。
DELIMITER //
CREATE FUNCTION `nvl`(`expr1` text,`expr2` text) RETURNS text CHARSET utf8
BEGIN
RETURN case when expr1 = '' or expr1 is NULL then expr2 ELSE expr1 end;
END ;
//
DELIMITER ;