我在bigquery中使用合并查询,注意到无法根据条件更新特定行。例如,表中已有5条记录。我只想更新两个值已更改的记录。当我执行下面的查询时,所有的行都会被更新。这意味着在3条记录的5条记录中,我不想更改值。一旦我收到新的值,应该会改变现有的记录。
MERGE `test.organization_user` T
USING `test.user_details` S
ON T.user_id = S.user_id
WHEN MATCHED AND
(
T.organization <> S.organization OR
T.contact_number <> S.contact_number
)
THEN
UPDATE
SET
T.organization = S.organization,
T.contact_number = S.contact_number
WHEN NOT MATCHED THEN
INSERT ROW
对于这种情况有没有解决方案,或者使用merge,它会更新所有匹配的记录,如果我们不想更新现有的记录,那么我们是否应该在源表中为这些记录的所有字段设置值(这些值将从这些字段更新到目标表)?
例如:
1条答案
按热度按时间wixjitnu1#
您应该在中处理nullcondition:-