日期:2014-05-17  浏览次数:20508 次

求这个sql语句怎么写呢?
根据A表和B表得到结果表,排序不限,怎么写sql呢? 先谢谢大家啦..

A表
学生  语文
aaa   60
bbb   70
ccc   80

B表
学生  数学
aaa   10
ddd   80
ccc   80

结果
学生  语文 数学
aaa   60   10
bbb   70   
ccc   80   80
ddd        80

------解决方案--------------------
引用:
Quote: 引用:

select * from A表 a full join B表 b on a.学生=b.学生

不对噢..



--> 测试数据:@A表
declare @A表 table([学生] varchar(3),[语文] int)
insert @A表
select 'aaa',60 union all
select 'bbb',70 union all
select 'ccc',80

--> 测试数据:@B表
declare @B表 table([学生] varchar(3),[数学] int)
insert @B表
select 'aaa',10 union all
select 'ddd',80 union all
select 'ccc',80

select 
ISNULL(a.学生,b.学生) AS 学生,
ISNULL(LTRIM(a.语文),'') AS 语文,
ISNULL(LTRIM(b.数学),'') AS 数学
from @A表 a FULL JOIN @B表 b ON a.学生=b.学生

/*
学生   语文           数学
---- ------------ ------------
aaa  60           10
bbb  70           
ccc  80           80
ddd               80
*/


列为null的时候处理一下即可。