BigQuery中如何直接将整数列表声明为数组变量?
在BigQuery中简洁声明数组变量的方法
你可以直接使用数组字面量给变量赋值,不需要额外的ARRAY()包裹,这是BigQuery支持的简洁写法:
DECLARE list_of_ints ARRAY<INT64>; SET list_of_ints = [11, 22, 33];
你之前写的ARRAY([11,22,33])属于冗余写法,方括号本身已经是数组字面量,ARRAY()函数的正确用法是接收子查询或表达式,而非嵌套数组字面量,因此会触发语法错误。
如果想更精简,可以在声明变量时直接完成赋值:
DECLARE list_of_ints ARRAY<INT64> DEFAULT [11, 22, 33];
要是需要对数组元素去重(和你原代码中的DISTINCT逻辑一致),也可以用更简洁的写法替代嵌套子查询:
DECLARE list_of_ints ARRAY<INT64>; SET list_of_ints = ARRAY(SELECT DISTINCT val FROM UNNEST([11,22,33,22]) val);
内容的提问来源于stack exchange,提问作者Ottpocket
相关产品推荐
相关产品推荐

