相关疑难解决方法(0)

带有元素编号的PostgreSQL unnest()

当我有一个具有分隔值的列时,我可以使用该unnest()函数:

myTable
id | elements
---+------------
1  |ab,cd,efg,hi
2  |jk,lm,no,pq
3  |rstuv,wxyz

select id, unnest(string_to_array(elements, ',')) AS elem
from myTable

id | elem
---+-----
1  | ab
1  | cd
1  | efg
1  | hi
2  | jk
...
Run Code Online (Sandbox Code Playgroud)

我如何包含元素编号?即:

id | elem | nr
---+------+---
1  | ab   | 1
1  | cd   | 2
1  | efg  | 3
1  | hi   | 4
2  | jk   | 1
...
Run Code Online (Sandbox Code Playgroud)

我想要源字符串中每个元素的原始位置.我试着窗口函数(row_number(), …

sql arrays postgresql window-functions set-returning-functions

69
推荐指数
3
解决办法
8万
查看次数

如何在PostgreSQL中删除数组元素?

是否可以删除数组中的一些元素?
在删除元素之前,Array1是:

{1,2,3,4}
Run Code Online (Sandbox Code Playgroud)

包含我想删除的一些元素的Array2:

{1,4}
Run Code Online (Sandbox Code Playgroud)

我想得到:

 {2,3}
Run Code Online (Sandbox Code Playgroud)

怎么操作?

sql arrays postgresql

10
推荐指数
5
解决办法
1万
查看次数

排除匹配的数组元素

如何从另一个数组中排除一个数组的匹配元素?

邮政编码:

a1 := '{1, 2, 5, 15}'::int[];
a2 := '{1, 2, 3, 6, 7, 9, 15}'::int[];

a3 := a2 ??magic_operator?? a1;
Run Code Online (Sandbox Code Playgroud)

a3我期望正好是 '{3, 6, 7, 9}'

最后结果

我和 lad2025 解决方案工作正常。

array_position()需要PostgreSQL 9.5及更高版本的解决方案,执行 x3 更快。

sql arrays postgresql

5
推荐指数
1
解决办法
837
查看次数