可能为空值的TSQL连接
我有一个小的存储过程,它正在拉入记录。表中当前有2条记录。其中一个具有可能为空值的TSQL连接,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,我有一个小的存储过程,它正在拉入记录。表中当前有2条记录。其中一个具有a.[manageraproval]的值,而另一个没有。由于连接,如果列没有值,则不会显示整个记录,而只是一个空值 无论其连接的列是否有值,仍然显示数据的好方法是什么 SELECT A.[id], A.[empID], A.[firstName], A.[lastName], A.[emailAddress], B.[FirstName] + ' ' +B.
a.[manageraproval]
的值,而另一个没有。由于连接,如果列没有值,则不会显示整个记录,而只是一个空值
无论其连接的列是否有值,仍然显示数据的好方法是什么
SELECT A.[id],
A.[empID],
A.[firstName],
A.[lastName],
A.[emailAddress],
B.[FirstName] + ' ' +B.[LastName] + ' (' +B.[ntid]+ ')' as managerApproval
FROM tuitionSubmissions as A
JOIN empTable AS B
ON B.[empID] = A.[managerApproval]
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root');
使用
左外部联接
-如果值存在于第二个表中,它将联接该值上的表,否则它将返回NULL
,用于从第二个表中选择中的任何值
SELECT A.[id],
A.[empID],
A.[firstName],
A.[lastName],
A.[emailAddress],
B.[FirstName] + ' ' +B.[LastName] + ' (' +B.[ntid]+ ')' as managerApproval
FROM tuitionSubmissions as A
LEFT OUTER JOIN empTable AS B
ON B.[empID] = A.[managerApproval]
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root');
对于这些记录,managerApproval
将为NULL
似乎您需要左连接:
SELECT A.[id],
A.[empID],
A.[firstName],
A.[lastName],
A.[emailAddress],
B.[FirstName] + ' ' +B.[LastName] + ' (' +B.[ntid]+ ')' as managerApproval
FROM tuitionSubmissions as A
Left JOIN empTable AS B
ON B.[empID] = A.[managerApproval]
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root');
将您的Join
更改为Left Join