gpt4 book ai didi

PostgreSQL:控制到达功能结束而没有 RETURN

转载 作者:行者123 更新时间:2023-11-29 14:37:47 25 4
gpt4 key购买 nike

我正在尝试创建一个返回 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;

最佳答案

像您定义的函数(RETURNS text)这样的普通函数将始终只返回一个值。

因此,除非函数被定义为 RETURNS void,否则您必须返回一个值,即您不能在没有参数的情况下使用 RETURN;

如果您想返回不同数量的行(0 或大于 1 的数字),您需要一个设置返回函数

这样的函数声明为 RETURNS SETOF text(或其他类型),在函数内部使用 RETURN NEXT val; 向函数输出和 RETURN; 没有参数来终止执行。

这样的函数在查询中可以像表一样使用。

关于PostgreSQL:控制到达功能结束而没有 RETURN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41764363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com