BigQuery中如何无需UNNEST直接复用声明的数组变量
BigQuery中不用UNNEST复用数值列表的方法
你可以用= ANY()操作符替代IN UNNEST(),这样既能复用声明的数组变量,又不用写UNNEST:
DECLARE list ARRAY<INT64> DEFAULT [8335, 9776, 11496]; SELECT * FROM `dataset.table` WHERE quantity_sold = ANY(list)
为什么最初的写法报错?
你用(8335, 9776, 11496)这种格式赋值时,BigQuery会把它解析成STRUCT<INT64>类型,而STRUCT无法直接用于IN条件,所以必须用数组[]的格式来声明变量。
补充说明
= ANY(list)和IN UNNEST(list)功能完全等价,都是检查quantity_sold是否存在于数组list中,只是前者写法更简洁,满足你避免使用UNNEST的需求。
内容的提问来源于stack exchange,提问作者Topde
相关产品推荐
相关产品推荐

