Sql postgres:如何调用返回表并从查询中传递参数的函数
例如: 返回表的函数: 调用它以使其返回一条记录(或您所称的任何记录): 调用它以返回一个表(好): 但是我如何调用它,使参数来自查询?Sql postgres:如何调用返回表并从查询中传递参数的函数,sql,postgresql,postgresql-9.5,set-returning-functions,lateral,Sql,Postgresql,Postgresql 9.5,Set Returning Functions,Lateral,例如: 返回表的函数: 调用它以使其返回一条记录(或您所称的任何记录): 调用它以返回一个表(好): 但是我如何调用它,使参数来自查询? 使用LATERAL子查询: SELECT * FROM (VALUES (3), (4)) AS s(n) , testf(s.n); 逗号是交叉连接横向的简短符号,因为横向是通过FROM子句中的set返回函数自动假定的 相关的: => select testf(3); testf ------- (1,2) => sel
使用
LATERAL
子查询:
SELECT *
FROM (VALUES (3), (4)) AS s(n)
, testf(s.n);
逗号是交叉连接横向
的简短符号,因为横向
是通过FROM
子句中的set返回函数自动假定的
相关的:
=> select testf(3);
testf
-------
(1,2)
=> select * from testf(3);
a | b
---+---
1 | 2
=> select s.n, testf(s.n) from (select 3 as n union select 4) s;
n | testf
---+-------
3 | (1,2)
4 | (1,2) <-- not a table (or row with column names)
=> select * from testf(s.n) from (select 3 as n) s;
ERROR: syntax error at or near "from"
LINE 1: select * from testf(s.n) from (select 3 as n) s;
SELECT *
FROM (VALUES (3), (4)) AS s(n)
, testf(s.n);