2014-09-03 80 views
1

有沒有一種方便的方法在配置單元中使用ARRAY_CONTAINS函數來搜索數組列中的多個條目而不僅僅是一個?因此,而不是:ARRAY_CONTAINS配置單元中的多個值

WHERE ARRAY_CONTAINS(array, val1) OR ARRAY_CONTAINS(array, val2) 

我想這樣寫:

WHERE ARRAY_CONTAINS(array, val1, val2) 

完整的問題是,我需要在命令行參數讀取val1val2動態當我運行該腳本,我一般不知道有多少價值會受到限制。所以可以認爲vals是含值val1val2...一個逗號分隔的列表(或陣列),我想寫

WHERE ARRAY_CONTAINS(array, vals) 

提前感謝!

回答

1

有一個UDF here可以讓你把兩個數組交叉。假設你的價值觀已經結構

values_array = [val1, val2, ..., valn] 

那麼你可以做

where array_intersection(array, values_array)[0] is not null 

如果他們沒有任何共同的元素,[]將被退回,因此[][0]null

+0

我與發電機在同一條船上,這仍然是最好的解決方案嗎? – blueskin 2015-06-29 21:29:49

+0

雅我覺得這是你最好的選擇。 – gobrewers14 2015-06-29 23:15:45

相關問題