日期:2014-05-18  浏览次数:20480 次

求一条SQL句子,在线等
A表
学号 分数
001 100
003 99
005 98
007 97

B表
学号 分数
001 100
002 88
003 80
005 98

现在想对比这两个表,学号为主键,A、B两表都会有对方没有的数据,
想得到结果:
学号 原A分数 B分数
001 100 100
002 0 88
003 99 80
005 98 98
007 97 0

请教各位大大,不叫见笑

------解决方案--------------------
SQL code
select isnull(A.学号,B.学号) 学号,isnull(A.分数,0) 原A分数,isnull(B.分数,0) B分数
from A full join B
on A.学号=B.学号

------解决方案--------------------
select ISNULL(A.id,B.Id) 学号 ,ISNULL(A.score,0) 原A分数,ISNULL(B.score,0)原B分数 from A full join B on A.id = B.Id
自己建表测试的。。绝对正确。。给满分吧。。
------解决方案--------------------
SQL code

CREATE TABLE A
(
  学号 VARCHAR(10) PRIMARY KEY,
  分数 INT 
)
INSERT INTO A VALUES('001',100)
INSERT INTO A VALUES('003',99)
INSERT INTO A VALUES('005',98)
INSERT INTO A VALUES('007',97)

CREATE TABLE B
(
  学号 VARCHAR(10) PRIMARY KEY,
  分数 INT  
)
INSERT INTO B VALUES('001',100)
INSERT INTO B VALUES('002',88)
INSERT INTO B VALUES('003',80)
INSERT INTO B VALUES('005',98)

SELECT ISNULL(A.学号,B.学号)学号
        ,ISNULL(A.分数,0) 原A分数,ISNULL(B.分数,0) B分数 FROM A FULL JOIN B ON A.学号=B.学号
/*
学号         原A分数        B分数         
---------- ----------- ----------- 
001        100         100
002        0           88
003        99          80
005        98          98
007        97          0

(所影响的行数为 5 行)
*/