sql - SQL JOIN 如果存在
问题描述
我有一个使用 JOIN 来获取其他数据库中的一些数据的查询。但在特定情况下,我的条目不会有任何数据做加入。所以,它根本不会返回任何东西。
如果不存在任何兼容数据,我如何忽略 join 语句?
这是我的 SQL 查询:
SELECT
a.Id,
a.NomeCompleto,
a.CPF,
a.RelacaoFuncional,
a.Estabelecimento,
UPPER(LEFT(a.Cargo, 1)) + LOWER(SUBSTRING(a.Cargo, 2, LEN(a.Cargo))) as Cargo,
b.Unidade,
c.Departamento,
d.CentroCusto + ' - ' + Desc_CCUsto as CentroCusto,
a.UsuarioEspelho,
a.Observacao,
a.UsuarioRequerente,
a.Status,
CONVERT(NVARCHAR(10), a.Data, 103) AS Data,
a.AprovacaoInfra,
a.AprovacaoSistemas,
a.Usuario,
a.TipoSolicitacao
FROM
[SGW].[dbo].[TI01A] a
JOIN
[SGW].[dbo].[Unidade] b ON a.Id_Unidade = b.UnidadeID
JOIN
[SGW].[dbo].[Departamento] c ON a.Id_Departamento = c.DeptoID
JOIN
[HAZTEC_ORC].[dbo].[DimCentroCusto] d ON a.CentroCusto = d.CentroCusto
WHERE
a.Id = 6
解决方案
你需要使用
LEFT JOIN
您的查询应如下所示
SELECT a.Id,
a.NomeCompleto,
a.CPF,
a.RelacaoFuncional,
a.Estabelecimento,
UPPER(LEFT(a.Cargo, 1)) + LOWER(SUBSTRING(a.Cargo, 2, LEN(a.Cargo))) as Cargo,
b.Unidade,
c.Departamento,
d.CentroCusto + ' - ' + Desc_CCUsto as CentroCusto,
a.UsuarioEspelho,
a.Observacao,
a.UsuarioRequerente,
a.Status,
convert(nvarchar(10), a.Data, 103) as Data,
a.AprovacaoInfra,
a.AprovacaoSistemas,
a.Usuario,
a.TipoSolicitacao
FROM[SGW].[dbo].[TI01A] a
LEFT JOIN[SGW].[dbo].[Unidade] b on a.Id_Unidade = b.UnidadeID
LEFT JOIN[SGW].[dbo].[Departamento] c on a.Id_Departamento = c.DeptoID
LEFT JOIN[HAZTEC_ORC].[dbo].[DimCentroCusto] d on a.CentroCusto = d.CentroCusto
WHERE A.Id = 6
推荐阅读
- django - 在 Django Rest 的分页响应中为每个对象动态添加有序数字
- c - CS50 Caesar - 从 ASCII 数字转换为字符
- visual-studio-2008 - Win CE 使用应用程序启用/禁用触摸
- javascript - 无法理解 return 如何在异步函数中工作
- listview - Xamarin.Forms TabbedPage 错误
- javascript - Asp.net Mvc Html Helper listboxFor click event
- javascript - 映射数据渲染多个 Material-UI Dialog 组件
- python - 如何在 Python 中根据第二行对列中的两行进行分组?
- javascript - 当我得到结果时,我不断得到 NaN
- javascript - 在我的游戏中安全运行用户编写的 Javascript