Google bigquery 如何更新BQ中struct数组中的字段?
在本例中,我可以更新字段名,但无法更新struct数组中的字段cityGoogle 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"
--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'设置地址=数组
选择为结构
状态,如果城市=一些城市,一些城市,城市,州
从不安的地址
哪里是真的