日期:2014-05-18 浏览次数:20663 次
create table tb1( name nvarchar(20), zlname nvarchar(60) ) insert into tb1 values(N'中山',N'申报资料') insert into tb1 values(N'东莞',N'记录资料') insert into tb1 values(N'广州',N'') create table tb2( name nvarchar(20), bgname nvarchar(60) ) insert into tb2 values(N'中山','表格资料') insert into tb2 values(N'东莞','') insert into tb2 values(N'广州','报到资料') insert into tb2 values(N'惠州','') select isnull(a.name,b.name) name,isnull(a.zlname,'') zlname,isnull(b.bgname,'') bgname from tb1 a full join tb2 b on a.name=b.name drop table tb1,tb2 /* name zlname bgname -------------------- ------------------------ ------------------------ 中山 申报资料 表格资料 东莞 记录资料 广州 报到资料 惠州 (所影响的行数为 4 行) */
------解决方案--------------------
/*
create table # ([name] varchar(6),zlname varchar(12))
INSERT INTO # VALUES ('中山','申报资料')
INSERT INTO # VALUES ('东莞','记录资料')
INSERT INTO # VALUES ('广州','')
create table s ([name] varchar(6),bgname varchar(12))
INSERT INTO s VALUES ('中山','表格资料')
INSERT INTO s VALUES ('东莞','')
INSERT INTO s VALUES ('广州','报到资料')
INSERT INTO s VALUES ('惠州','')
*/
/*
name zlname bgname
---------------------------
中山 申报资料 表格资料
东莞 记录资料 " "
广州 " " 报到资料
惠州 " " " "
*/
select s.name,zlname,bgname from # full join s on #.name=s.name