关于全外连接的问题:
现有两个表T1,T2,表结构相同有 日期,数值 两个字段,数据如下:
T1:
日期 数值
2007-01-01 10
2007-01-02 20
2007-01-03 30T2:
日期 数值
2007-01-02 20
2007-01-03 30
2007-01-04 40我想得到的结果
日期 数值T1 数值T2
2007-01-01 10 NULL
2007-01-02 20 20
2007-01-03 30 30
2007-01-04 NULL 40我用以下全外连接语句好像不行哦
select * from T1 Full outer join T2 on(T1.日期 = T2.日期)请问要怎么办?
现有两个表T1,T2,表结构相同有 日期,数值 两个字段,数据如下:
T1:
日期 数值
2007-01-01 10
2007-01-02 20
2007-01-03 30T2:
日期 数值
2007-01-02 20
2007-01-03 30
2007-01-04 40我想得到的结果
日期 数值T1 数值T2
2007-01-01 10 NULL
2007-01-02 20 20
2007-01-03 30 30
2007-01-04 NULL 40我用以下全外连接语句好像不行哦
select * from T1 Full outer join T2 on(T1.日期 = T2.日期)请问要怎么办?
解决方案 »
- SQL 急急
- Linux下C++(OCCI)操作Oracle 10g编程,编译连接错误!!
- 关于oracle中substrb函数使用出现的现象,求教.
- (散分)请问:oracle7和9i中如何删除表空间(多个数据文件)中的一个数据文件?
- 查询问题,类似group by。
- 求oracle9i在linux下的安装补丁
- 怎样在ORACLE里面建立函数,调用函数!
- execute immediate?
- oracle81 自动备份方案:在线收集!
- 这个视图该怎样创建?
- (急)oracle 根据当前日期得到季节(类似SQL的datepart函数)
- pl/sql读写文件的错误: ORA-06510和ORA-06512
select decode(t1.日期,null,t2.日期,t1.日期),t1.数值,t2.数值
from t1 full outer join t2 on t1.a=t2.a
不过 bjt 那样也对的。
谢谢!
你的2007-01-04 NULL 40对应记录
用上面的查询结果为
NULL NULL 40
问题出现在你select * from T1上 而2007-01-04是不属于T1的,
所以出现了Null Null 来full join T2 出现上面的结果~~
所以只要排除Null 即可~~楼上方法上面已提供。不再赘述