首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

三表显示有关问题

2013-08-01 
三表显示问题,在线等select * from Aselect * from Bselect * from C我要这样显示:A AABC 1 11BC1 11b1 C1

三表显示问题,在线等
select * from A
select * from B
select * from C
三表显示有关问题

我要这样显示:
A AA  B  C 
1 11  B  C
1 11  b1 C1
1 11  B2 null    

第一个表只能有一条记录。。但B跟C。可以变。。。
[解决办法]


create table A(A int, AA int)
create table B(B varchar(5), A int)
create table C(C varchar(5), A int)

insert into A
 select 1,11

insert into B
 select 'B',1 union all
 select 'b1',1 union all
 select 'B2',1

insert into C
 select 'C',1 union all
 select 'c1',1 


select isnull(t1.A,t2.A) 'A',
       isnull(t1.AA,t2.AA) 'AA',
       t1.B,
       t2.C
from
(select x.A,x.AA,y.B,row_number() over(order by getdate()) 'rn'
 from A x left join B y on x.A=y.A) t1
full join
(select x.A,x.AA,z.C,row_number() over(order by getdate()) 'rn'
 from A x left join C z on x.A=z.A) t2 on t1.rn=t2.rn

/*
A           AA          B     C
----------- ----------- ----- -----
1           11          B     C
1           11          b1    c1
1           11          B2    NULL

(3 row(s) affected)
*/

热点排行