将值插入结构列?

Insert values into struct column?

提问人:Saravana Kumar 提问时间:8/11/2023 最后编辑:Saravana Kumar 更新时间:8/13/2023 访问量:107

问:

我在 bigquery 中有一个表,其中包含两列 id 和 struct column details(record,repeated)。 它有两个嵌套字段 name(string),range(string)。

尝试了以下查询以插入值。

insert into table
values(101,struct(array(['Marie','Jonas']),['High','Low']))

无法加载记录。语法本身是错误的。

我应该能够插入值,就好像通过 array_agg(struct()) 函数完成一样。我的预期输出是

id    details.name   details.range
____  ___________    _____________
101   Marie          High
      Jonas          Low

如果我能得到一些帮助,我将不胜感激。

数组 google-cloud-platform 结构 google-bigquery 嵌套

评论

0赞 Saravana Kumar 8/11/2023
你好@Amira贝迪亚菲。你能帮我解决这个问题吗?
0赞 kiran mathew 8/11/2023
嗨@Saravana库马尔,我已经发布了答案。我希望它能帮助你。如果有帮助,请考虑投票并接受,否则请告诉我,以便我改进我的答案。
0赞 Saravana Kumar 8/12/2023
嗨,@kiranmathew,很抱歉,我的问题未能清楚地解释我的疑问。我已经对这个问题进行了更改。请再看一遍。
0赞 kiran mathew 8/13/2023
嗨@Saravana库马尔,我已经更新了我的答案。
0赞 Saravana Kumar 8/29/2023
谢谢@kiranmathew。那奏效了,得到了预期的结果

答:

1赞 kiran mathew 8/11/2023 #1

对于您的要求,您可以考虑以下查询:

INSERT INTO my-project.my-dataset.my-table(Details) values(struct('maria' ,'high')),(struct('Jonas' ,'Low'))

结果:

image

有关更多信息,请参阅这些链接 1链接 2链接 3

更新

查询:

INSERT INTO my-project.databset.table values(101,[('maria','High'),('Jonas','Low')])

结果:

image