想要通过在Postgres函数中一次性传递多个参数来获取输出

问题描述

 dps.ds_parts_countertickets_open(locationid)

我们通过传递locationid作为参数来访问函数,例如:为了获取locationid = 1的输出,我们将编写

select * 
from dps.ds_parts_countertickets_open(1).

现在,我想同时/在一个输出获取2个locationid的数据。例如:一次性获取locationid = 1和locationid = 2的输出。我该怎么做?

解决方法

一种实现方法是使用variadic function,它可以接受可变数量的参数。这些可以在函数体中的PostgreSQL数组中访问。

当然可以选择让函数接受数组作为参数。

使用适合您情况的任何方式。

,

使用横向连接:

select * 
from (values (1),(2)) v(id) cross join lateral
     dps.ds_parts_countertickets_open(v.id)