如何在 postgresql 的函数中获取 select 的结果?
how do I get the result of a select within a function in postgresql?
我想获得值为 1 的 table,但此查询 returns 0 行。为什么会这样?
CREATE OR REPLACE FUNCTION test_6()
RETURNS TABLE
(
r int
)
LANGUAGE plpgsql
AS $function$
BEGIN
execute 'SELECT 1 as r';
end;
$function$;
select test_6()
您需要添加RETURN QUERY
CREATE OR REPLACE FUNCTION test_6()
RETURNS TABLE
(
r int
)
LANGUAGE plpgsql
AS $function$
BEGIN
RETURN QUERY
execute 'SELECT 1 as r';
end;
$function$;
此外,正如下面评论中所建议的那样,您应该像 table select * from test_6()
一样使用该函数
你可以只使用
RETURN QUERY
SELECT 1 as r;
我想获得值为 1 的 table,但此查询 returns 0 行。为什么会这样?
CREATE OR REPLACE FUNCTION test_6()
RETURNS TABLE
(
r int
)
LANGUAGE plpgsql
AS $function$
BEGIN
execute 'SELECT 1 as r';
end;
$function$;
select test_6()
您需要添加RETURN QUERY
CREATE OR REPLACE FUNCTION test_6()
RETURNS TABLE
(
r int
)
LANGUAGE plpgsql
AS $function$
BEGIN
RETURN QUERY
execute 'SELECT 1 as r';
end;
$function$;
此外,正如下面评论中所建议的那样,您应该像 table select * from test_6()
你可以只使用
RETURN QUERY
SELECT 1 as r;