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

如何在BigQuery中构造NULL数组与STRUCT并插入NULL字段?

在BigQuery中构造NULL数组与STRUCT的正确方法

针对你创建的表结构:

CREATE TABLE `project.dataset.table`
(
  field ARRAY<STRUCT<value STRUCT<float_val FLOAT64, int_val INT64, string_val STRING>>>
)

你可以通过以下几种方式正确构造符合要求的NULL相关数组/STRUCT:

1. 插入整个数组为NULL值

如果需要让field字段直接为NULL,写法最简单:

SELECT NULL AS field

2. 构造包含单个NULL元素的数组

如果数组里要存一个NULL的STRUCT元素:

SELECT [NULL] AS field

3. 构造包含所有字段为NULL的STRUCT元素的数组

这是你尝试实现的场景,只需用STRUCT字面量语法嵌套构造,不需要嵌套SELECT AS STRUCT:

SELECT [STRUCT(STRUCT(NULL AS float_val, NULL AS int_val, NULL AS string_val) AS value)] AS field

若要明确指定类型避免隐式转换问题,可添加CAST:

SELECT [STRUCT(
  STRUCT(
    CAST(NULL AS FLOAT64) AS float_val,
    CAST(NULL AS INT64) AS int_val,
    CAST(NULL AS STRING) AS string_val
  ) AS value
)] AS field

错误原因说明

你之前的SQL错误在于嵌套使用了SELECT AS STRUCT,在BigQuery中构造STRUCT直接用STRUCT(...)语法即可,内部嵌套SELECT AS STRUCT会被解析为无效的表达式/子查询,从而触发语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:31:15