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

如何替换BigQuery中JSON字段空值并转换为ARRAY<INT64>?

解决BigQuery中含null的JSON数组转ARRAY的问题

当JSON数组包含null值时,直接使用JSON_VALUE_ARRAY会报错,因为该函数默认不允许数组中存在null元素。以下两种方法可以解决这个问题:

方法一:JSON_QUERY_ARRAY + SAFE_CAST组合

先通过JSON_QUERY_ARRAY提取包含null的JSON数组,再用SAFE_CAST安全转换每个元素为INT64(遇到null时会返回null而非报错),最后重新聚合为数组:

SELECT
  ARRAY(
    SELECT SAFE_CAST(item AS INT64)
    FROM UNNEST(JSON_QUERY_ARRAY(your_json_column, '$.values')) AS item
  ) AS int64_array
FROM your_table

方法二:开启JSON_VALUE_ARRAY的allow_nulls参数

JSON_VALUE_ARRAY支持第三个参数allow_nulls,将其设置为TRUE即可允许数组包含null元素,之后再用SAFE_CAST转换类型:

SELECT
  ARRAY(
    SELECT SAFE_CAST(item AS INT64)
    FROM UNNEST(JSON_VALUE_ARRAY(your_json_column, '$.values', TRUE)) AS item
  ) AS int64_array
FROM your_table

两种方法最终都会生成包含null的ARRAY<INT64>结果,比如输入{"values":[1, 2, null, 4, null]}会输出[1,2,null,4,null]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:05:14