我有一个 megre 声明,它执行以下操作:
MERGE INTO TABLE_NAME1 tgt
USING (SELECT CONTRACTOR, TRACTOR, COL1, COL2 FROM TABLE_NAME2) src
ON src.CONTRACTOR = tgt.CONTRACTOR AND src.TRACTOR = tgt.TRACTOR
这是因为承包商可以拥有多台拖拉机。不使用表键,因为它只是一个标识键 - 插入时自动编号。
当表为空时,合并运行正常,但再次运行时,它会复制 tractor 为空的行。所以我尝试了:
ON ((src.CONTRACTOR = tgt.CONTRACTOR AND src.TRACTOR = tgt.TRACTOR)
OR (src.CONTRACTOR = tgt.CONTRACTOR AND tgt.TRACTOR IS NULL))
但这会导致它挂起。DB2 在比较 NULL 和 NULL 时是否存在问题?