我有以下查询:
SELECT a.id, a.Nome, ...
FROM cadClientes as a
...
join Contatos_Clientes as f on a.id = f.idCliente
问题在于Contatos_Clientes
中有时没有一行。
如果Nome
存在,我想返回Contatos_Clientes
,否则从Nome
返回cadClientes
。
答案 0 :(得分:6)
如果要仅显示一个表中的值,而不是另一个表中的值,则应将连接更改为LEFT OUTER JOIN。例如:
SELECT Nome = COALESCE(c.Nome, cc.Nome) -- ,... Other columns
FROM dbo.cadClientes AS c
-- other joins...
LEFT OUTER JOIN dbo.Contatos_Clientes AS cc
ON c.id = cc.idCliente;
创建/引用对象时请始终使用模式前缀,并尝试使用有意义的别名而不是a,b,c ......