我只是想知道如何在PostreSQL存储过程中将整数列表存储为变量。
例如,我有这样的陈述:
select A from B where C IN (1,2,3);
select A from B where C IN (1,2);
我想声明一个变量来存储(1,2,3)
或(1,2)
。
所以我会用这样一句话来结尾:
select A from B where C in numberList;
(数字列表的值为(1,2,3))
我不知道我应该使用哪种数据类型,我上网查了一下,没有发现psql中有列表类型。它的语法是什么?
3条答案
按热度按时间zujrkrfu1#
您可以将它们存储为整型数组(即int[])类型,然后使用ANY运算符进行调用,如下所示:
它返回了我们要寻找的分段动态IN运算符结果:
wnrlj8wa2#
further reading
bvjxkvbb3#
使用这个解决方案,你可以在多个查询中使用"变量"。注意,它实际上是一个函数,但是你可以把它当作变量使用。
还要考虑到每次使用它时,函数都会被执行,因此这可能不是最有效的方法,但对于简单的使用来说,它有助于避免在不同的查询中多次键入或粘贴同一个列表。
然后,您可以使用它,例如,像这样:
或者像这样: