当联接列为空时联接到另一个表

时间:2019-10-11 17:08:57

标签: oracle join null

我有一个从数据库中选择许多内容的sql,但是我希望该数据仅恢复,这与我拥有的个人表相匹配。 我想从我的表[population]中加入一列[vin_code],但是这里有空值,并且是否有空值,我想将我的表中的另一列连接到数据库中的另一个表中。

我将在下面给出一个示例sql:

Select distinct v.kegal_rntity_id
From vin v
  Inner join ops$dami.population pop
          On v.vin_code = pop.vin_code

然后是pop.vin_code为null我想将pop.vis_code加入数据库中名为zegal_rentity z列z.vis_code的表上

类似

join zegal_rentity z
On pop.vis_code = z.vis_code

但是我只想这样做pop.vin_code为null

1 个答案:

答案 0 :(得分:0)

由于没有可用的示例数据,我无法测试解决方案,但尝试使用基于条件outer join的以下查询。

Select distinct v.kegal_rntity_id
From ops$dami.population pop
Left join vin v 
On v.vin_code = pop.vin_code
Left join zegal_rentity z
On (case when pop.vin_code is null and
pop.vis_code = z.vis_code then 1 end = 1);

干杯!