如何将 SQL 查询的数组输出传递到 PostgreSQL (PL/pgSQL) 函数中?
我能够在 SQL 中执行以下操作,其中将 user_ids 的“数组”传递到 SQL 查询的 where
子句中。
select * from users where id in (select user_id from profiles);
我想做同样的事情,但将“数组”传递到 PostgreSQL (PL/pgSQL) 函数中,如下所示。如何声明函数并使用函数内的“数组”?
select * from users_function(select user_id from profiles);
CREATE OR REPLACE FUNCTION users_function(....)
RETURNS void AS
$BODY$
....
I am able to do the following in SQL where an "array" of user_ids are passed into the where
clause of a SQL query.
select * from users where id in (select user_id from profiles);
I would like to do the same thing but pass the "array" into a PostgreSQL (PL/pgSQL) function as shown below. How do I declare the function and work with the "array" within the function?
select * from users_function(select user_id from profiles);
CREATE OR REPLACE FUNCTION users_function(....)
RETURNS void AS
$BODY$
....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在函数中声明数组数据类型
[]
,然后使用聚合函数array_agg
将select语句转换为数组。Declare an array datatype
[]
in the function then use the aggregate functionarray_agg
to transform the select statement into an array.正如我上面所描述的,我无法获得 nate c 的
array_agg
方法。这是一个选项:I could not get the nate c's
array_agg
approach as I described above. This is an option: