当我有一个具有分隔值的列时,我可以使用该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
是否可以删除数组中的一些元素?
在删除元素之前,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)
怎么操作?
如何从另一个数组中排除一个数组的匹配元素?
邮政编码:
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 更快。