[英]Left outer join with condition sql
有人知道是否有办法进行条件左外连接吗? 我有带实际值的分类帐表和参考部门表,我想从中分配 BMDIV。 但部门参考表包含 LC 编号或 = 'xx' 我想要做的是将分类帐表与 LCTRYNUM、LC 和 DEPTNUM 上的部门表连接起来,但在 LC = '**' 的情况下,连接将只是 LCTRYNUM 和 DEPTNUM。
分类帐实际表
密码 | 液晶显示器 | 部门 | 数量 |
---|---|---|---|
618 | 40 | 30813 | 100 |
618 | 50 | 30813 | 200 |
618 | 60 | 30813 | 300 |
618 | 10 | 30813 | 100 |
事业部参考表
密码 | 液晶显示器 | 部门 | BMDIV |
---|---|---|---|
618 | ** | 30813 | 30 |
618 | 10 | 30813 | 2P |
预期结果是这样的
密码 | 液晶显示器 | 部门 | 数量 | BMDIV |
---|---|---|---|---|
618 | 40 | 30813 | 100 | 30 |
618 | 50 | 30813 | 200 | 30 |
618 | 60 | 30813 | 300 | 30 |
618 | 10 | 30813 | 100 | 2P |
您可以使用两个left join
s,第一个引入直接匹配,第二个用于默认匹配:
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 = '**'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.