繁体   English   中英

无法在连接条件中应用 case 语句

[英]Unable to apply case statement in join condition

我有两个表 TableA 和 TableB。 对于 TableB(id =1) 中的一条记录,我想在 condition1(a.value = b.value) 上执行连接,而对于其他记录,我想在 condition2((a.value - b.value)/ 上执行连接a.val < 1)。

但是,我在end处遇到语法错误。 在这种情况下如何应用案例条件?

Select * from TableA a
LEFT JOIN TableB b 
on a.id = b.id 
and (
case when b.id = 1 then a.value = b.value 
else (a.value - b.value)/ a.val < 1 end
)

只需使用 boolean 逻辑:

select *
from TableA a left join
     TableB b 
     on a.id = b.id and
        (b.id = 1 and a.value = b.value or
         b.id <> 1 and (a.value - b.value)/ a.val < 1
        )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM