如何使用另一个bigquery表中的数据更新嵌套的bigquery列

时间:2019-06-11 14:14:58

标签: google-bigquery

我有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

到目前为止,两个表都具有相似的架构。

1 个答案:

答案 0 :(得分:0)

  

每当table1.value1 = table2.value
时,我都需要更新 all 中的所有列   ...两个表都具有相似模式

我假设similar是指same

以下是用于BigQuery标准SQL
您可以使用下面的查询来获取合并结果,并使用destination tableCREATE OR REPLACE TABLE语法

将其保存回table1
#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)