BigQuery中向重复STRUCT列插入值的语法问题求助
BigQuery插入包含重复STRUCT列的表的正确语法
你的错误在于构造重复STRUCT的方式不对——details是重复STRUCT类型(即STRUCT数组),每个元素需要是包含name和range的完整STRUCT,而不是把两个数组塞进单个STRUCT里。
正确的INSERT语句
INSERT INTO `你的项目ID.你的数据集.你的表名` VALUES( 101, [ STRUCT('Marie' AS name, 'High' AS range), STRUCT('Jonas' AS name, 'Low' AS range) ] );
简化写法(字段顺序与表定义一致时可用)
如果表中details的STRUCT字段顺序就是name在前、range在后,可以省略字段名,直接用元组构造:
INSERT INTO `你的项目ID.你的数据集.你的表名` VALUES( 101, [('Marie', 'High'), ('Jonas', 'Low')] );
验证结果
执行插入后查询表:
SELECT * FROM `你的项目ID.你的数据集.你的表名`;
会得到你预期的输出:
| id | details.name | details.range |
|---|---|---|
| 101 | Marie | High |
| Jonas | Low |
内容的提问来源于stack exchange,提问作者Saravana Kumar
相关产品推荐
相关产品推荐

