[英]Postgres - Check if array contains values other than expected ones
假設一個條目的數組值為{1,2,3}。
我希望能夠查詢以下問題:
“數組是否包含1和2以外的數字?” (是)
這也可以滿足我的目的:
“此數組是否不包含1、2、3和4以外的其他值?” (是的,即使沒有使用4也可以)
我四處張望,卻無法在數組中找到這種特殊的搜索形式。 有一種有效的方法可以做到這一點嗎?
編輯:我找到了一個解決方案,在該解決方案中,我可以對數組進行嵌套,並從未嵌套的行中進行選擇,以使我的條件與!= ANY
匹配,但是它看起來並不十分優雅,我希望有替代方案!
您可以嘗試使用EXCEPT
和UNNEST
一種選擇
SELECT CASE
WHEN count(*) > 0
THEN TRUE
ELSE FALSE
END IN_A_NOT_IN_B
FROM (
SELECT unnest(array [1,2,3])
EXCEPT
SELECT unnest(array [1,2])
) t;
如果您將其反轉,則第二個條件將為True。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.