我有这个功能,它很简单:
CREATE OR REPLACE FUNCTION test_function()
RETURNS TABLE(
id INTEGER,
organization_id INTEGER,
email_address CHARACTER VARYING
)
AS $BODY$
SELECT id, organization_id, email_address FROM users;
$BODY$ LANGUAGE SQL;
这个函数的输出给了我一些看起来像这样的东西:
> SELECT test_function(); test_function
---------------
(1,1,test)
(3,1,test2)
(4,2,2test)
当我自己运行查询时,我希望得到更像这样的东西:
> select id, organization_id, email_address FROM users;
id | organization_id | email_address
----+-----------------+---------------
1 | 1 | test
3 | 1 | test2
4 | 2 | 2test
我怎样才能得到类似的结果,以便我可以在 SQL 函数中解析它?
要分解、分离列,请使用以下命令调用表函数:
但是你也有偷偷摸摸的命名冲突。
RETURNS TABLE
子句中OUT
列出的列名是隐式参数,在函数体中的每个 SQL 语句中都可见。避免在函数体中使用与列名冲突的名称和/或表限定所有可能冲突的表列名。喜欢:请参阅:手册中的变量替换。