繁体   English   中英

左外连接条件 sql

[英]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.

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