2

我有以下查询:

SELECT a.id, a.Nome, ...
FROM cadClientes as a 
...
join Contatos_Clientes as f on a.id = f.idCliente 

问题是有时Contatos_Clientes.

如果存在,我想Nome从返回,否则从.Contatos_ClientesNomecadClientes

4

1 回答 1

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...

于 2013-07-31T13:39:57.363 回答