--测试数据
declare @A表 table(A列 int,B列 int,C列 int)
insert into @a表
select 1,1,1
union all select 2,2,2
union all select 3,3,3
declare @B表 table(A列 int,B列 int,C列 int)
insert into @b表
select 1,1,1
union all select 2,2,2
union all select 4,4,4
--查询
select 表=case when a.a列 is null then 'B表' else 'A表' end
,A列=isnull(a.a列,b.a列)
,B列=isnull(a.b列,b.b列)
,C列=isnull(a.c列,b.c列)
from @A表 a full join @B表 b on a.a列=b.a列 and a.b列=b.b列 and a.c列=b.c列
where (a.a列 is null and a.b列 is null and a.c列 is null)
or (b.a列 is null and b.b列 is null and b.c列 is null)
order by 表
select A列=isnull(a.a列,b.a列)
,B列=isnull(a.b列,b.b列)
,C列=isnull(a.c列,b.c列)
from A表 a full join B表 b on a.a列=b.a列 and a.b列=b.b列 and a.c列=b.c列
where (a.a列 is null and a.b列 is null and a.c列 is null)
or (b.a列 is null and b.b列 is null and b.c列 is null)