我只是想知道如何在 PostreSQL 存储过程中将整数列表存储为变量。
例如,我有这样的陈述:
select A from B where C IN (1,2,3);
select A from B where C IN (1,2);
Run Code Online (Sandbox Code Playgroud)
我想声明一个变量来存储(1,2,3)or (1,2)。
所以我最终会得到这样的声明:
select A from B where C in numberList;
Run Code Online (Sandbox Code Playgroud)
(numberList 的值为 (1,2,3))
我不知道我应该使用哪种数据类型,我在网上查了一下,在 psql 中找不到列表类型。它的语法是什么?
小智 1
您可以将它们存储为整数数组(即int[])类型,然后使用 ANY 运算符进行调用,如下所示:
WITH RECURSIVE CTE AS (
SELECT 1 AS i
UNION ALL
SELECT i+1 FROM CTE WHERE i < 15
)
SELECT * FROM CTE WHERE i = ANY( ARRAY[1, 5, 7, 9] )
Run Code Online (Sandbox Code Playgroud)
它返回我们正在寻找的分段动态 IN 运算符结果:
i
-
1
5
7
9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11685 次 |
| 最近记录: |