postgresql 后置列中数组的所有元素

6vl6ewon  于 2023-02-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(144)

我有一个array['a', 'b', 'c']
很简单,我想检查上述数组的所有元素是否都存在于表t的某个列(例如test)中。
如果sql返回布尔值就最好了。
谢谢。

rkue9o1l

rkue9o1l1#

所以我是这样做的

SELECT array_agg(DISTINCT test) @> ARRAY ['a', 'b', 'c']::varchar[] FROM t;

请建议是否有其他最佳的方法做这件事

chhkpiq4

chhkpiq42#

你可以使用Postgresql的UNNEST函数和EXCEPT函数,如果你的数组很大的话,这会更好。

SELECT DISTINCT test from unnest(ARRAY['a', 'b', 'c']) AS data(test)
EXCEPT
SELECT DISTINCT test from t

相关问题