MrG*_*ass 9 arrays postgresql union plpgsql
我在PostgreSQL中有两个我需要联合的数组.例如:
{1,2,3}工会{1,4,5}会回来{1,2,3,4,5}
使用连接(||)运算符不会删除重复的条目,即它返回 {1,2,3,1,4,5}
我在网上找到了一个解决方案,但我不喜欢它需要如何取消两个数组:
select ARRAY(select unnest(ARRAY[1,2,3]) as a UNION select unnest(ARRAY[2,3,4,5]) as a)
是否有一个运算符或内置函数可以干净地结合两个数组?
Clo*_*eto 18
如果您的问题是不需要两次,则只需要一次
select array_agg(a order by a)
from (
select distinct unnest(array[1,2,3] || array[2,3,4,5]) as a
) s;
Run Code Online (Sandbox Code Playgroud)
Pav*_*ule 10
有一个扩展intarray(在contrib包中)包含一些有用的函数和运算符:
postgres=# create extension intarray ;
CREATE EXTENSION
Run Code Online (Sandbox Code Playgroud)
单管操作员:
postgres=# select array[1,2,3] | array[3,4,5];
?column?
?????????????
{1,2,3,4,5}
(1 row)
Run Code Online (Sandbox Code Playgroud)
或uniq功能:
postgres=# select uniq(ARRAY[1,2,3] || ARRAY[3,4,5]);
uniq
?????????????
{1,2,3,4,5}
(1 row)
Run Code Online (Sandbox Code Playgroud)
ANSI/SQL知道一个多集,但PostgreSQL还不支持它.
| 归档时间: |
|
| 查看次数: |
8675 次 |
| 最近记录: |