在 SQL 中,我试图检查以下情况
WHERE (col1 is null and col2 is not null) or (col1 is not null and col2 is null)
有没有一种合乎逻辑的方法可以使这种情况更短?
我正在尝试做的事情的描述
我有 2 张桌子,每张桌子有 3 列
Table1(Ft) Table2(Dt)
ID ID
F1 D1
F2 D2
F3 D3
F 列是整数类型 D 列是日期时间类型
F1 correspondes to D1
F2 correspondes to D2
F3 correspondes to D3
我想选择 F 为空且 D 已填充或 D 为空且 F 已填充的行这是完整的代码,让它更短!
SELECT f1,
f2,
f3,
d1,
d2,
d3
FROM ftable Ft
INNER JOIN dtable Dt
ON Ft.ID= Dt.ID
WHERE ( ( ( d1 IS NULL
AND f1 IS NOT NULL )
OR ( d1 IS NOT NULL
AND f1 IS NULL ) )
OR ( ( d2 IS NULL
AND f2 IS NOT NULL )
OR ( d2 IS NOT NULL
AND f2 IS NULL ) )
OR ( ( d2 IS NULL
AND f2 IS NOT NULL )
OR ( d3 IS NOT NULL
AND f3 IS NULL ) ) )