我有一个array['a', 'b', 'c']很简单,我想检查上述数组的所有元素是否都存在于表t的某个列(例如test)中。如果sql返回布尔值就最好了。谢谢。
array['a', 'b', 'c']
t
test
rkue9o1l1#
所以我是这样做的
SELECT array_agg(DISTINCT test) @> ARRAY ['a', 'b', 'c']::varchar[] FROM t;
请建议是否有其他最佳的方法做这件事
chhkpiq42#
你可以使用Postgresql的UNNEST函数和EXCEPT函数,如果你的数组很大的话,这会更好。
SELECT DISTINCT test from unnest(ARRAY['a', 'b', 'c']) AS data(test) EXCEPT SELECT DISTINCT test from t
2条答案
按热度按时间rkue9o1l1#
所以我是这样做的
请建议是否有其他最佳的方法做这件事
chhkpiq42#
你可以使用Postgresql的UNNEST函数和EXCEPT函数,如果你的数组很大的话,这会更好。