如何在PostgreSQL函数中创建包含多个值的参数?

如何在PostgreSQL函数中创建包含多个值的参数?,postgresql,Postgresql,我正在处理PostgreSQL中的一个函数,需要在其中创建一个参数并传递多个值 例如,我有一个名为group的表,它有两个字段:group\u ck和groupidgroupid的值如下: (abc,def,lsm,fed,sedd,erer,dlojn) 而group\u ck是序列号 现在我需要构建一个函数并传递groupid值。我知道在sql中我们可以定义: @group in=('abc','def','lsm','fed','sedd','erer','dlojn') 但在Post

我正在处理PostgreSQL中的一个函数,需要在其中创建一个参数并传递多个值

例如,我有一个名为
group
的表,它有两个字段:
group\u ck
groupid
groupid
的值如下:

(abc,def,lsm,fed,sedd,erer,dlojn)
group\u ck
是序列号

现在我需要构建一个函数并传递
groupid
值。我知道在sql中我们可以定义:

@group in=('abc','def','lsm','fed','sedd','erer','dlojn')

但在PostgreSQL中,它不是这样工作的。有谁能帮助我并提供一个示例,说明如何在一个参数中传递多个值吗?

您可以将数组作为参数:

CREATE FUNCTION my_function(params text[])
然后,您可以在函数内部使用以下内容检查它

my_value = ANY(params)

params
应该是您的
groupid

您可以将数组作为参数:

CREATE FUNCTION my_function(params text[])
然后,您可以在函数内部使用以下内容检查它

my_value = ANY(params)

params
应该是您的
groupid

将其作为数组传递?:将其作为数组传递?:谢谢,下面是我所做的操作及其引发的错误。如果存在abc(字符),请使用DROP函数;创建或替换函数abc(,p_grgr_id CHARACTER)返回VOID作为$$declare l_grgr_id CHARACTER(100);如果合并(trim(p_grgr_id),“”=l_grgr_id=grgrgr_id来自组,其中grgr_id类似于“PEND%”,grgr_id=all(数组[PENDD,PENDL,PENDC,PENDM,PENDF]);else l_grgr_id:=p_grgr_id;如果结束;提升信息“l_grgr_id:%”,l_grgr_id;错误说明:“pendd”列不存在于您的注释中,因为存在许多语法错误。请用小提琴来演示你的问题:谢谢,下面是我所做的,它抛出了一个错误;创建或替换函数abc(,p_grgr_id CHARACTER)返回VOID作为$$declare l_grgr_id CHARACTER(100);如果合并(trim(p_grgr_id),“”=l_grgr_id=grgrgr_id来自组,其中grgr_id类似于“PEND%”,grgr_id=all(数组[PENDD,PENDL,PENDC,PENDM,PENDF]);else l_grgr_id:=p_grgr_id;如果结束;提升信息“l_grgr_id:%”,l_grgr_id;错误说明:“pendd”列不存在于您的注释中,因为存在许多语法错误。请用小提琴演示您的问题: