当函数返回a TABLE
或a时SETOF composite-type
,如此示例函数:
CREATE FUNCTION func(n int) returns table(i int, j bigint) as $$
BEGIN
RETURN QUERY select 1,n::bigint
union all select 2,n*n::bigint
union all select 3,n*n*n::bigint;
END
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)
结果可以通过各种方法访问:
1)select * from func(3)
将产生这些输出列:
i | j ---+--- 1 | 3 2 | 9 3 | 27
2)select func(3)
将只生成一个ROW类型的输出列.
func ------- (1,3) (2,9) (3,27)
3)select (func(3)).*
会产生#1:
i | j ---+--- 1 | 3 2 | 9 3 | …