在 BigQuery 中更新结构
Posted
技术标签:
【中文标题】在 BigQuery 中更新结构【英文标题】:Update Struct in BigQuery 【发布时间】:2021-03-04 16:19:58 【问题描述】:我正在玩 bigquery。我想更新嵌套字段,但出现此错误:
ARRAY
>> 类型的值无法分配给 click_url,它的类型为 STRUCT 在 [2:17]
表:
这是代码。我已经尝试过这个,因为我看到一些线程建议使用 UNNEST
函数,但 click_url
不是数组而是结构。
UPDATE `myTable` t
SET click_url =
ARRAY(
SELECT AS STRUCT(c.string, c.text, c.provided) FROM UNNEST([t.click_url]) as c
)
WHERE id = 10
【问题讨论】:
【参考方案1】:仔细看报错信息,目标列类型是STRUCT without Array
STRUCT<string STRING, text STRING, provided STRING>
正如您所暗示的那样,UNNEST 是不必要的。尝试直接更新 STRUCT。
UPDATE `myTable` t
SET click_url =
(SELECT AS STRUCT(
t.click_url.string,
t.click_url.text,
your_hard_coded_provided_string)
)
WHERE id = 10
【讨论】:
以上是关于在 BigQuery 中更新结构的主要内容,如果未能解决你的问题,请参考以下文章