使用 BigQuery MERGE 函数更新不匹配的行

Update unmatched rows using BigQuery MERGE function

我正在尝试使用计划查询更新 table,该查询使用 MERGE 函数来匹配和更新行。但是,table 中的某些行需要删除,因为它们已在查询引用的其他 table 中删除。但是,由于这些行不再存在,因此无法将它们匹配回正在更新的 table 中的现有行。有没有办法以某种方式执行与 MERGE 函数相反的功能,例如只查找 与预定查询匹配的订单?

例如,这是 table 当前正在更新的方式:

这是我希望它更新的方式:

not_matched_by_source_clause 定义如何更新或删除目标 table 中的行,如果该行与源 table 中的任何行都不匹配。

MERGE dataset.NewArrivals T
USING (SELECT * FROM dataset.NewArrivals WHERE warehouse <> 'warehouse #2') S
ON T.product = S.product
WHEN MATCHED AND T.warehouse = 'warehouse #1' THEN
  UPDATE SET quantity = T.quantity + 20
WHEN NOT MATCHED BY SOURCE THEN
  DELETE

这里有更多示例 MERGE https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#merge_statement