本文介绍了TSQL,加入多个字段,其中一个可能为 NULL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的查询:

SELECT * FROM Products p 
LEFT JOIN SomeTable st ON st.SomeId = p.SomeId AND st.SomeOtherId = p.SomeOtherId

到目前为止一切顺利.

但是第一个连接到 SomeId 可以是 NULL,在这种情况下检查应该是 IS NULL,这就是连接失败的地方.我尝试使用 CASE,但也无法使其正常工作.

But the first join to SomeId can be NULL, In that case the check should be IS NULL, and that's where the join fails. I tried to use a CASE, but can't get that to work also.

我在这里遗漏了一些简单的东西吗?

Am I missing something simple here?

推荐答案

来自 未记录的查询计划:平等比较.

SELECT *
FROM   Products p
       LEFT JOIN SomeTable st
         ON st.SomeOtherId = p.SomeOtherId
            AND EXISTS (SELECT st.SomeId INTERSECT SELECT p.SomeId) 

这篇关于TSQL,加入多个字段,其中一个可能为 NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-13 22:58