Sql select-如果为空,如何从其他表中选择
我有一个视图,它为b.emissor和b.indexador列返回一些空值。如果为null,我需要首先在表TB_CAD_RF中找到这个值,如果仍然为null,我需要查询TB_CAD_RF_2。 我尝试下面的逻辑,但它不起作用。我也试着用案例陈述来思考一些事情,但无法理解 有人能帮我吗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
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是空的