我有2个带有嵌套列的bigquery
表,每当table1
时我都需要更新table1.value1=table2.value
中的所有列,还有那些具有大量数据的表。
我可以使用如下所示的静态列更新单个嵌套列,
#standardSQL
UPDATE `ck.table1`
SET promotion_id = ARRAY(
SELECT AS STRUCT * REPLACE (100 AS PromotionId ) FROM UNNEST(promotion_id)
)
但是当我尝试重用同一表以基于table2数据更新多列时,我遇到了异常。
每当table1
具有所有嵌套列时,我都试图用table2
数据更新table1.value1=table2.value
。
到目前为止,两个表都具有相似的架构。
答案 0 :(得分:0)
每当table1.value1 = table2.value
时,我都需要更新 all 中的所有列 ...两个表都具有相似模式
我假设similar
是指same
以下是用于BigQuery标准SQL
您可以使用下面的查询来获取合并结果,并使用destination table
或CREATE OR REPLACE TABLE
语法
#standardSQL
SELECT AS VALUE IF(value IS NULL, t1, t2)
FROM `project.dataset.table1` t1
LEFT JOIN `project.dataset.table2` t2
ON value1 = value
我还没有尝试过使用UPDATE
语法的这种方法-但您可以尝试让我们知道:o)