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

BigQuery如何将嵌套JSON数组展开为每个tag对应一行的多行数据

BigQuery 嵌套JSON数组展开实现方案

实现代码

将以下语句中的your_table_name替换为你的实际表名即可直接运行:

SELECT
  id,
  title,
  -- 如果需要数值类型的tag,可替换为 CAST(tag AS INT64) AS tag
  tag
FROM
  `your_table_name`,
  -- 第一次展开metadata顶层的JSON数组,得到单个JSON对象
  UNNEST(JSON_EXTRACT_ARRAY(metadata)) AS metadata_obj,
  -- 第二次展开JSON对象内部的tags数组,得到单个tag值
  UNNEST(JSON_VALUE_ARRAY(metadata_obj, '$.tags')) AS tag

逻辑说明

  • 第一层UNNEST配合JSON_EXTRACT_ARRAY:先将metadata字段存储的顶层JSON数组解析为BigQuery可识别的数组结构,再拆分为多行,每行对应一个包含tags、categories字段的JSON对象。
  • 第二层UNNEST配合JSON_VALUE_ARRAY:从拆分得到的单个JSON对象中提取tags字段的数组,再次拆分为多行,每行对应一个tag值,最终得到每行一个tag的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:24:07