Sql server 空值上的内部联接
对于employee 2,并没有EmpAddressId,但这里需要显示为空值或空值。Sql server 空值上的内部联接,sql-server,Sql Server,对于employee 2,并没有EmpAddressId,但这里需要显示为空值或空值。 任何人都能帮上忙。只需将内部连接替换为左侧连接(或左侧外部连接)。这将导致Address表中所有列的NULL,如果不匹配。此外,您还可以使用更简单的版本替换联接条件: TableName:Emp EmpId EmpName EmpAddressId 1 Ram 100 2 Ravi 3 Raj 102 4
任何人都能帮上忙。只需将
内部连接
替换为左侧连接
(或左侧外部连接
)。这将导致Address
表中所有列的NULL
,如果不匹配。此外,您还可以使用更简单的版本替换联接条件:
TableName:Emp
EmpId EmpName EmpAddressId
1 Ram 100
2 Ravi
3 Raj 102
4 Kiran
5 Bujji 101
TableName:Address
AddressId Address
101 India
102 Uk
103 US
select E.*,A.Address from EMP E inner join Address A
on E.EmpId=2 and E.EmpAddressId='' or E.EmpAddressId=A.AddressId
out put should display as for EmpId:2
------------------------------
EmpId EmpName EmpAddressId Address
2 Ravi
for EmpId:3
------------
EmpId EmpName EmpAddressId Address
3 Raj 102 Uk
有关上的外部联接的详细信息。如果联接表中的任何一个为null,则内部联接将屈服于null。。如果所有表都有值,则使用内部联接,否则使用左联接。它确保您将至少获得let联接表值 为此,您可以使用左连接
select E.EmpId, E.EmpName, E.EmpAddressId, A.Address
from EMP E left join Address A
on E.EmpAddressId=A.AddressId
where E.EmpId=2
在这里,我需要的是单个员工,而不是所有员工。我是说EmpId作为输入参数。啊,好的,我把它加回去了。
select e.EmpId, e.EmpName, e.EmpAddressId, a.Address
from EMP e left join Address a
on e.EmpAddressId=a.AddressId
where e.EmpId=2