我正在尝试创建一个返回X行或0行的函数。
这是我的代码:
...
IF var != '' THEN
RETURN var;
ELSE
RETURN NULL;
END IF;
END;
$$
LANGUAGE 'plpgsql';
如果我这样做:
...
IF var != '' THEN
RETURN var;
ELSE
RETURN;
END IF;
END;
$$
LANGUAGE 'plpgsql';
我收到错误:
ERROR: missing expression at or near ";"
LINE 19: RETURN;
答案 0 :(得分:1)
正常函数(如您定义的函数(RETURNS text
)将始终返回一个值。
因此,除非将函数定义为RETURNS void
,否则您必须返回一个值,即不能在没有参数的情况下使用RETURN;
。
如果要返回不同数量的行(0或大于1的数字),则需要设置返回函数。
这样的函数被声明为RETURNS SETOF text
(或其他一些类型),并且从函数内部使用RETURN NEXT val;
向函数输出添加一行,而RETURN;
没有参数终止执行。
这样的函数可以像查询中的表一样使用。