postgresql - 在 postgresql 中仅查找两个字符串数组之间不匹配元素的最佳方法是什么

标签 postgresql postgresql-9.2

到目前为止我发现的是

select ARRAY(
   select unnest(ARRAY[ 'a', 'b', 'c' ])
   except
   select unnest(ARRAY[ 'c', 'd', 'e' ])
)

我们可以这样做来仅查找两个字符串数组之间的不匹配元素。

还有其他最好的方法吗?

就像整数数组一样,我们可以这样做

SELECT int[1,2,3] - int[2,3]

最佳答案

select array_agg(e order by e)
from (
    select e
    from
    (
        select unnest(array[ 'a', 'b', 'c' ])
        union all
        select unnest(array[ 'c', 'd', 'e' ])
    ) u (e)
    group by e
    having count(*) = 1
) s

关于postgresql - 在 postgresql 中仅查找两个字符串数组之间不匹配元素的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067128/

相关文章:

sql - 组合两个具有多个粒度级别的表

postgresql - 从另一个容器(Docker)连接到 postgresql 容器

sql - 检查 PostgreSql 中多行的唯一数据

sql - 有没有更简单的方法来找到具有最大值的行?

PostgreSQL group by date_trunc聚合索引大于不使用索引

linux - 安装 postgresql92-server postgresql92-contrib 时缺少 libssl.so.10

postgresql - 如何读取PostgreSQL wal文件数据?是否有任何命令可以将 PostgreSQL 二进制文件转换为可读文本格式?

heroku - Postgres.app 升级,现在 Rails 应用程序无法启动

python - Django 1.11.4 Postgresql SELECT ARRAY 到 django orm