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

BigQuery中如何简化嵌套STRUCT与双层数组的Unnest代码生成示例数据

简化SQL内置示例数据的最优方案

方案1:逐行构造STRUCT数组(最推荐,新增数据效率最高)

这是造示例数据最优的写法,对比UNION ALL写法,20+行数据可减少近一半代码量,新增数据只需在数组中追加行元组即可,无需写重复的SELECT/UNION ALL语句:

WITH Some_Data AS (
  SELECT * FROM UNNEST([
    STRUCT("a" AS t_letters, 1 AS t_numbers),
    ("b", 2)
    -- 新增数据直接加 (值1, 值2) 即可
  ])
)
SELECT * FROM Some_Data

方案2:等长数组对齐场景简化(适配原有实现逻辑)

如果你已经持有两个等长数组需要对齐展开,可直接移除原代码中冗余的STRUCT数组嵌套和多层子查询,简化后逻辑如下,输出和原代码完全一致:

WITH Some_Data AS (
  SELECT ["a", "b"] AS letters, [1, 2] AS numbers
)
SELECT t_numbers, t_letters
FROM Some_Data
CROSS JOIN UNNEST(numbers) AS t_numbers WITH OFFSET nm
LEFT JOIN UNNEST(letters) AS t_letters WITH OFFSET lt ON nm = lt

两种方案的输出均与预期结果一致:

Rowt_numberst_letters
11a
22b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:18:05