Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql select-如果为空,如何从其他表中选择_Sql_Tsql - Fatal编程技术网

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

Sql select-如果为空,如何从其他表中选择,sql,tsql,Sql,Tsql,我有一个视图,它为b.emissor和b.indexador列返回一些空值。如果为null,我需要首先在表TB_CAD_RF中找到这个值,如果仍然为null,我需要查询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.CODI

我有一个视图,它为b.emissor和b.indexador列返回一些空值。如果为null,我需要首先在表TB_CAD_RF中找到这个值,如果仍然为null,我需要查询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)
这种模式:

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返回传入的第一个非空值,从左到右扫描此模式:

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返回传递给它的第一个非空值,从左到右进行扫描。始终按所需结果的顺序连接两个字段并合并字段

select A.NM_ATIVO, 
    EMISSOR = COALESCE(A.EMISSOR,B.EMISSOR), 
    INDEXADOR=COALESCE(A.INDEXADOR,B.INDEXADOR)
from VW_POSICAO  A
LEFT JOIN TB_CAD_RF B on A.NM_ATIVO = B.CODIGO
LEFT JOIN TB_CAD_RF_2 D ON A.NM_ATIVO =D.CODIGO

这里有一个方法。始终按所需结果的顺序连接两个字段并合并字段

select A.NM_ATIVO, 
    EMISSOR = COALESCE(A.EMISSOR,B.EMISSOR), 
    INDEXADOR=COALESCE(A.INDEXADOR,B.INDEXADOR)
from VW_POSICAO  A
LEFT JOIN TB_CAD_RF B on A.NM_ATIVO = B.CODIGO
LEFT JOIN TB_CAD_RF_2 D ON A.NM_ATIVO =D.CODIGO

如果从表1中选择*为空,请从表2中选择*否则请选择

ISNULL类似于IIF语句,但如果查询字段返回null值,它将尝试替代查询,或者您可以设置替代值


语法可能有点错误,有段时间没有编写这个查询了,但它应该会让您走上正确的道路。Google sql ISNULL

当ISNULLselect*从表1中选择时,请从表2中选择*否则请选择

ISNULL类似于IIF语句,但如果查询字段返回null值,它将尝试替代查询,或者您可以设置替代值

语法可能有点错误,有段时间没有编写这个查询了,但它应该会让您走上正确的道路。谷歌sql是空的