我有一个这样的函数,它总是只返回一条记录:
CREATE FUNCTION foo(pid int) RETURNS TABLE (a int, b int)
AS $$
   -- …
$$ LANGUAGE sql;
我想从这样的表中选择行:
SELECT p.id
     , foo(p.id).*
  FROM puns AS p;
但是,这会在.*. 我无法弄清楚如何使用 a 来做到这一点JOIN,因为p.id它是函数的参数。
如何将函数返回的记录解包到选择查询中?所需的结果将包含三列id和。ab
我正在使用 PostgreSQL 9.2。