我有一个函数func1()
,它返回整数。
我想写另一个函数func2(mode integer)
,它可以返回func1()
结果或做更多的东西。 func1()
的返回值的类型为INTEGER
。
类似的东西:
CREATE OR REPLACE FUNCTION func2(mode integer)
RETURNS integer AS
$$
begin
if mode=1 then
return func1(); -- NOT plpgsql syntax
end if;
more stuff .....
return 2;
end
$$
LANGUAGE plpgsql VOLATILE
我的问题是如何做return func1();
?
我知道我能做到:
select func1() into temp;
return temp;
但是如果有更优雅的方法可以做到这一点,那我就是在想。
答案 0 :(得分:1)
所有这些工作:
选项1:
CREATE OR REPLACE FUNCTION func2(mode integer)
RETURNS integer AS
$BODY$
DECLARE
_result integer;
BEGIN
_result = 2;
IF mode=1 THEN
_result = func1();
END IF;
--more stuff .....
RETURN _result;
END
$BODY$
LANGUAGE plpgsql VOLATILE COST 100;
选项2:
CREATE OR REPLACE FUNCTION func2(mode integer)
RETURNS integer AS
$BODY$
BEGIN
IF mode=1 THEN
RETURN func1();
END IF;
--more stuff .....
RETURN 2;
END
$BODY$
LANGUAGE plpgsql VOLATILE COST 100;