左外连接条件 sql

Left outer join with condition sql

有人知道是否有办法进行条件左外连接吗?我有分类帐 tables 与实际和参考部门 table 我想从中分配 BMDIV。 但部门参考 table 包含 LC 编号或 = 'xx' 我想要做的是在 LCTRYNUM、LC 和 DEPTNUM 上将分类帐 table 与部门 table 加入,但在 LC = '**' 的情况下,加入只会是 LCTRYNUM 和 DEPTNUM。

实际分类帐 table

LCTRYNUM LC DEPTNUM Amount
618 40 30813 100
618 50 30813 200
618 60 30813 300
618 10 30813 100

事业部参考资料table

LCTRYNUM LC DEPTNUM BMDIV
618 ** 30813 30
618 10 30813 2P

预期的结果是这样

LCTRYNUM LC DEPTNUM Amount BMDIV
618 40 30813 100 30
618 50 30813 200 30
618 60 30813 300 30
618 10 30813 100 2P

您可以使用两个 left join,第一个引入直接匹配,第二个用于默认匹配:

select a.*, coalesce(d.bmdiv, d_default.bmdiv) as bmdiv
from actual a left join
     divisions d
     on a.lc = d.lc left join
     divisions d_default
     on d_default.lc = '**'