【发布时间】:2018-12-14 04:05:36
【问题描述】:
我在 MS SQL Server 2012 中使用JOIN 删除一个表中与另一个表中的记录匹配的记录
DELETE t1
FROM Table1 t1
JOIN Table2 t2
ON
t1.[Column1] = t2.[Column1]
AND t1.[Column2] = t2.[Column2]
AND t1.[Column3] = t2.[Column3]
但是,如果两个表中的列都包含null,则它们不会被匹配并被删除。如果两列都包含null,我如何修改查询以匹配记录,而不添加对null的特定检查
DELETE t1
FROM Table1 t1
JOIN Table2 t2
ON
t1.[Column1] = t2.[Column1] OR (t1.[Column1] is null and t2.[Column1] is null)
AND t1.[Column2] = t2.[Column2] OR (t1.[Column2] is null and t2.[Column2] is null)
AND t1.[Column3] = t2.[Column3] OR (t1.[Column3] is null and t2.[Column3] is null)
【问题讨论】:
-
使用 ISNULL 将空值更改为某个默认值,例如对于 INT,如果为 NULL,则默认为 0
标签: sql join sql-server-2012 null sql-delete