高分提问 sql语句一条

来源:百度知道 编辑:UC知道 时间:2024/05/07 03:02:24
表1
单号 项目1
1 A
1 B
2 A
2 B
3 C
==============
表2
单号 项目2
1 A
1 C
2 C
4 A
==============
表3
单号 项目1 项目2
1 A A
1 B
1 C
2 A
2 B
2 C
3 C
4 A

用sql表1和表2,创建出表3,可以利用视图、存储过程等各种方法(表3可以有空值)
刚才表3错了 下面的是对的

表1
单号 项目1
1 A
1 B
2 A
2 B
3 C
==============
表2
单号 项目2
1 A
1 C
2 C
4 A
==============
表3
单号 项目1 项目2
1 A A
1 B NULL
1 NULL C
2 A NULL
2 B NULL
2 NULL C
3 C
4 NULL A

用sql表1和表2,创建出表3,可以利用视图、存储过程等各种方法(表3允许有空)

谢谢大家 不过都不行呀,数据不全,希望

declare @tb1 table(单号 int, 项目1 varchar(10))
insert into @tb1 select 1,'A'
insert into @tb1 select 1,'B'
insert into @tb1 select 2,'A'
insert into @tb1 select 2,'B'
insert into @tb1 select 3,'C'

declare @tb2 table(单号 int, 项目2 varchar(10))
insert into @tb2 select 1,'A'
insert into @tb2 select 1,'C'
insert into @tb2 select 2,'C'
insert into @tb2 select 4,'A'

select
单号=isnull(a.单号,b.单号)
,a.项目1
,b.项目2
from
@tb1 a
full join
@tb2 b
on
a.单号 = b.单号 and a.项目1=b.项目2
order by
单号

--结果
/*
单号 项目1 项目2
-----------------------------
1 A A
1 NULL C
1 B NULL
2 B NULL
2 A NULL
2 NULL C
3 C NULL
4 NULL A
*/

select * from (select * from 表1) Union All (select * from 表2 ) order by 单号

只是连接查看,就简单的用视图