有没有办法通过更改输入并合并所有结果来遍历函数?

Is there a way to loop over a function with changing inputs and union all the results?

我有一个功能是 returns 产品信息在 table 中。我想查询不同产品的此函数结果并汇总响应。最好的方法是什么?
到目前为止,我是这样处理的,但我希望有一种方法可以循环一个函数,将产品列表作为输入:

SELECT name, key, value
FROM infofunc_v1('whitepasta')
UNION ALL
SELECT name, key, value
FROM infofunc_v1('darkpasta')

Stack 中第一个 post。感谢所有建议,祝你有美好的一天!

您可以使用横向连接:

SELECT name, key, value
FROM (VALUES ('whitepasta'), ('darkpasta')) v(val) CROSS JOIN LATERAL
     infofunc_v1('whitepasta');

注意:如果你想要一个单一的输入参数,VALUES可以是UNNEST(:array),所以你可以传入一个值数组。