Sql select - 如果为空,如何从其他表中选择

use*_*960 1 sql t-sql

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

\n\n

有人可以帮我吗?

\n\n
select\xc2\xa0A.NM_ATIVO,\xc2\xa0B.EMISSOR,\xc2\xa0B.INDEXADOR\xc2\xa0from VW_POSICAO\xc2\xa0as\xc2\xa0A\nLEFT\xc2\xa0JOIN\nTB_CAD_RF B\xc2\xa0on\xc2\xa0A.NM_ATIVO\xc2\xa0=\xc2\xa0B.CODIGO\nwhere\xc2\xa0a.NM_EMISSOR\xc2\xa0is\xc2\xa0null\nas\xc2\xa0C\xc2\xa0LEFT\xc2\xa0JOIN\xc2\xa0(\nselect\xc2\xa0C.EMISSOR,\xc2\xa0C.INDEXADOR\xc2\xa0from\xc2\xa0TB_CAD_RF_2 as\xc2\xa0D\xc2\xa0ON\xc2\xa0B.NM_ATIVO\xc2\xa0=\xc2\xa0C.CODIGO\xc2\xa0where\xc2\xa0C.EMISSOR is\xc2\xa0null)\n
Run Code Online (Sandbox Code Playgroud)\n

Cai*_*ard 5

这个模式:

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
Run Code Online (Sandbox Code Playgroud)

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