首页 > 解决方案 > Sql select - 如果为空,如何从其他表中选择

问题描述

我有一个视图,它为 b.emissor 和 B.indexador 列返回了一些空值。如果为空,我需要先在表 TB_CAD_RF 中找到这个值,如果仍然为空,我需要查询 TB_CAD_RF_2。我尝试下面的逻辑,但它不起作用。还试图用案例陈述思考一些事情,但无法弄清楚。

任何人都可以帮助我吗?

select A.NM_ATIVO, B.EMISSOR, B.INDEXADOR from VW_POSICAO as A
LEFT JOIN
TB_CAD_RF B on A.NM_ATIVO = B.CODIGO
where a.NM_EMISSOR is null
as C LEFT JOIN (
select C.EMISSOR, C.INDEXADOR from TB_CAD_RF_2 as D ON B.NM_ATIVO = C.CODIGO where C.EMISSOR is null)

标签: sqltsql

解决方案


这种模式:

SELECT
  COALESCE( first.choice, second.choice, third.choice) as a
FROM
  first
  LEFT JOIN second on first.id = second.id
  LEFT JOIN third on second.id = third.id

Coalesce 返回第一个传入的非空值,从左到右扫描


推荐阅读