2014-09-03 1479 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

相关问题