T1
要在加入缺少第 2 行和第 4 行的表时获取所有行,T2
您需要使用左外连接。对于第 2 行和第 4 行,薪水将为空。
要将 null 值替换为其他值,您可以使用coalesce。合并返回第一个非空参数。
由于字段salary
被声明为int
字段,并且您希望No Salary
在没有薪水的情况下作为输出,因此您需要在将其用作合并中的参数之前将其转换int
为a 。varchar
declare @T1 table(id int, name varchar(10))
declare @T2 table(id int, salary int)
insert into @T1 values(1, 'Sue')
insert into @T1 values(2, 'Sarah')
insert into @T1 values(3, 'Nick')
insert into @T1 values(4, 'james')
insert into @T2 values(1, 10000)
insert into @T2 values(3, 9000)
select
T1.id,
T1.name,
coalesce(cast(T2.salary as varchar(10)), 'No Salary') as salary
from @T1 as T1
left outer join @T2 as T2
on T1.id = T2.id
结果
id name salary
----------- ---------- ----------
1 Sue 10000
2 Sarah No Salary
3 Nick 9000
4 james No Salary