【发布时间】:2021-03-22 11:30:20
【问题描述】:
我正在尝试使用 Merge 语句将源表的整个内容复制到目标表中的 SQL 语句。我正在尝试处理的流程是;检查源表中的一行数据是否存在于目标表中,如果它不执行任何操作,如果不执行,则将该行数据插入到源表中。
所以这是我目前拥有的代码,但它不能正常工作。
MERGE `myProject.myDataset.test_destination` T
USING `myProject.myDatatset.test_source` S
ON (T.department = S.department AND
T.category = S.category AND
T.subcategory = S.subcategory
T.country = S.country AND
T.state = S.state AND
T.county = S.county AND
T.date = S.date)
WHEN NOT MATCHED THEN
INSERT ROW
当我运行此查询时,我倾向于在目标上拥有比源上更多的数据。不应该是这样(它们应该是一样的)。
哦,是的,我忘了添加。该表没有唯一字段作为主键。我们使用复合字段来唯一标识每一行数据。
我将不胜感激任何形式的帮助..
【问题讨论】:
-
您应该调查您的数据。如果我不得不推测,我猜
NULL值是其中的一部分。 -
是的,涉及 NULL 值.. 大多数在子类别级别..
标签: sql google-bigquery