You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确使用ARRAY<STRUCT>变量存储BigQuery查询结果集

问题原因

  1. 多余的括号包裹:你给ARRAY()返回的结果额外套了一层括号,虽然多数场景下不会触发语法报错,但如果BigQuery运行环境开启了严格类型校验,可能会出现隐式类型识别异常,导致变量赋值不符合预期。
  2. 脚本执行模式未开启:使用DECLARE声明变量的语句必须在BigQuery的脚本模式下运行,如果你是分段单独执行赋值、查询语句,变量的作用域仅在当前执行块生效,后续UNNEST查询会因为识别不到变量返回空结果。

修正后可直接运行的代码

DECLARE rs ARRAY<STRUCT<created_date TIMESTAMP, unique_key STRING, complaint_description STRING>>;

-- 去掉外层多余的括号,直接赋值ARRAY函数返回的结果
SET rs = ARRAY(
  SELECT AS STRUCT created_date, unique_key, complaint_description
  FROM `bigquery-public-data.austin_311.311_service_requests`
  LIMIT 10
);

SELECT * FROM UNNEST(rs);

校验方法

你可以在赋值后加一句调试语句,确认变量是否正常赋值:

-- 输出数组长度,正常返回10说明赋值成功
SELECT ARRAY_LENGTH(rs);

如果返回值为0,说明你查询的公共同步数据集存在权限问题或者区域同步延迟,可以换成自己项目下的测试表验证逻辑。

内容的提问来源于stack exchange,提问作者Njord Tyln

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 11:18:03