我有一个简单的查询:
SELECT * FROM Products p
LEFT JOIN SomeTable st ON st.SomeId = p.SomeId AND st.SomeOtherId = p.SomeOtherId
到目前为止一切顺利。
但是对SomeId的第一次连接可以是NULL,在这种情况下,检查应该是IS NULL,并且这是连接失败的地方。我尝试使用CASE,但也无法使用它。
我在这里错过了一些简单的东西吗?
答案 0 :(得分:2)
来自Undocumented Query Plans: Equality Comparisons。
SELECT *
FROM Products p
LEFT JOIN SomeTable st
ON st.SomeOtherId = p.SomeOtherId
AND EXISTS (SELECT st.SomeId INTERSECT SELECT p.SomeId)