Google bigquery 如何更新BQ中struct数组中的字段?

Google bigquery 如何更新BQ中struct数组中的字段?,google-bigquery,Google Bigquery,在本例中,我可以更新字段名,但无法更新struct数组中的字段city --create or replace table mydataset.struct_3 (name string,address array< struct<status string, city string,state string>>) --insert into mydataset.struct_3 (name,address) values("some_name",[("previous"

在本例中,我可以更新字段名,但无法更新struct数组中的字段city

--create or replace table mydataset.struct_3 (name string,address array< struct<status string, city string,state string>>)
--insert into mydataset.struct_3 (name,address) values("some_name",[("previous","some_city","some_state"),("current","some_city","some_state")])
--update `mydataset.struct_3` set name="some_name2" where name="some_name"
update  `mydataset.struct_3` set address.city="some_uscity" where address.city="some_city"
我得到这个错误

Error: Cannot access field city on a value with type ARRAY<STRUCT<status STRING, city STRING, state STRING>> at [4:75]

您需要替换阵列本身,更新所需的值:

update  `mydataset.struct_3`
set address = ARRAY(SELECT IF(city="some_city", "some_uscity", city) FROM UNNEST(address))

您需要替换阵列本身,更新所需的值:

update  `mydataset.struct_3`
set address = ARRAY(SELECT IF(city="some_city", "some_uscity", city) FROM UNNEST(address))
标准SQL 更新'mydataset.struct_3'设置地址=数组 选择为结构 状态,如果城市=一些城市,一些城市,城市,州 从不安的地址 哪里是真的 标准SQL 更新'mydataset.struct_3'设置地址=数组 选择为结构 状态,如果城市=一些城市,一些城市,城市,州 从不安的地址 哪里是真的