PostgreSQL自定义MAX函数出现语法错误求助
PostgreSQL自定义MAX函数出现语法错误求助
嗨,我仔细看了你的代码和报错信息,问题其实很明确——你的IF条件里的大于号被写成了HTML转义字符>,PostgreSQL完全不认识这个转义后的符号,所以才会在IF那行抛出语法错误。
先把你出错的代码贴出来方便对照:
CREATE FUNCTION MAX(v1 integer, v2 integer) RETURNS integer AS $$ BEGIN IF (v1>v2) THEN RETURN v1; ELSE RETURN v2; END IF; END; $$ LANGUAGE plpgsql;
你只需要把>替换成正常的大于号>,代码就能正常运行了。修正后的完整代码如下:
CREATE FUNCTION MAX(v1 integer, v2 integer) RETURNS integer AS $$ BEGIN IF (v1 > v2) THEN RETURN v1; ELSE RETURN v2; END IF; END; $$ LANGUAGE plpgsql;
另外顺便提一句,PostgreSQL本身就内置了GREATEST()函数,功能和你自定义的这个MAX完全一样,比如SELECT GREATEST(3,5);就会返回5,其实你没必要自己重复造轮子啦😉
备注:内容来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

