我想执行此代码
displayLength
答案 0 :(得分:2)
案件毫无意义。您无论如何都要加入相同的两个字段,因此只需将您的案例条件添加到连接条件:
SELECT ...
JOIN ... ON ((a.ID1 = s.ID2) AND ((case #1) OR (case #2)))
答案 1 :(得分:1)
只是详细说明Marc的答案,我认为最简单的形式是:
select *
from a right join
s
on a.ID1 = s.ID2 and a.ActivityDate < s.[ExecDate] and
(s.[Diff ] = 0 or a.ActivityDate >= s.[Date3])
请注意,我建议使用left join
代替right join
。通常更直观地阅读查询思维&#34;第一个表中的所有行都保留在其他表中的匹配行中。&#34;