从 Postgres 中的函数返回虚拟表
在 Postgres 中,使用函数创建具有多行和多列的自定义虚拟表需要特定的句法。本文演示了如何正确编写一个返回类似于虚拟表的记录集的函数。
正确语法
定义一个返回包含三个记录的虚拟表的函数整数列,使用以下 PL/pgSQL code:
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ BEGIN RETURN QUERY VALUES (1,2,3) , (3,4,5) , (3,4,5) ; END $func$ LANGUAGE plpgsql IMMUTABLE ROWS 3;
说明
替代选项
简单 SQL:对于简单场景,一条普通的 SQL 语句就足够了:
VALUES (1,2,3), (3,4,5), (3,4,5)
SQL函数:你也可以将上面的内容包装起来SQL 函数中的语句:
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ VALUES (1, 2, 3) , (3, 4, 5) , (3, 4, 5); $func$ LANGUAGE sql IMMUTABLE ROWS 3;
用法
检索虚拟表:
SELECT * FROM f_foo();
以上是如何从 Postgres 函数返回虚拟表?的详细内容。更多信息请关注PHP中文网其他相关文章!