A表
ID code Name num
1 100 张三 3
2 101 李四 5
3 103 王五 4
B表
ID code Name sum
1 100 张三 7
2 108 马齐 8
3 103 王五 9希望得到结果
code Name num sum
100 张三 3 7
108 马齐 0 8
103 王五 4 9
101 李四 5 0
谢谢
ID code Name num
1 100 张三 3
2 101 李四 5
3 103 王五 4
B表
ID code Name sum
1 100 张三 7
2 108 马齐 8
3 103 王五 9希望得到结果
code Name num sum
100 张三 3 7
108 马齐 0 8
103 王五 4 9
101 李四 5 0
谢谢
解决方案 »
- JOB 运行错误
- 求一条SQL语句!在线等!谢谢!
- 安装oracle10G服务器端后无法登陆?即使用system/sys也(ORA-01017:invalid username/password;)
- Oracle, 多个字段中有回车,换行字符,不想逐字段去REPLACE,不知道有没有在会话层级的设置,可以实现将此类字符忽略?
- 怎么把这五条SQL语句合并成一条SQL语句?
- 送分,SQL计算比率的写法。
- 编码与描述,哪种设计更好
- 请教:按索引查询还是很慢?
- SQL*PLUS的问题?
- SQL复杂查询问题,请教数据库大牛!
- 关于oracle数据库备份与还原问题,自增列消失,高手进!
- 各位大虾看看如下SQL怎么写?
select coalesce(tabA.code,tabB.code) code,
coalesce(tabA.name,tabB.name) name,
nvl(tabA.num,0) num, nvl(tabB.sum,0) sum
from tabA full outer join tabB
on tabA.code=tabB.code;
with tb as(
select 1 ID,100 code,'张三' Name,3 num from dual union all
select 2, 101, '李四', 5 from dual union all
select 3, 103, '王五', 4 from dual),
tt as(
select 1 ID,100 code,'张三' Name,7 sum from dual union all
select 2, 108, '马齐', 8 from dual union all
select 3, 103, '王五', 9 from dual)
select code,name,max(decode(flag,'a',num,0)) num,max(decode(flag,'b',num,0)) sum
from (select tb.*,'a' flag from tb union all select tt.*,'b' from tt)
group by code,name
CODE NAME NUM SUM
--------- ---- ---------- ----------
100 张三 3 7
108 马齐 0 8
101 李四 5 0
103 王五 4 9
create table a(
id number,
code number,
name varchar2(20),
num number
)insert into a(id,code,name,num) values(1,100,'张三',3);
insert into a(id,code,name,num) values(2,101,'李四',5);
insert into a(id,code,name,num) values(3,102,'王五',4);
alter table a add constraint pk_a primary key(id);create table b(
id number,
code number,
name varchar2(20),
sum number
)
insert into b(id,code,name,sum) values(1,100,'张三',7);
insert into b(id,code,name,sum) values(2,108,'马奇',8);
insert into b(id,code,name,sum) values(3,103,'王五',9);alter table b add constraint pk_b primary key(id);select coalesce(a.code,b.code) code,
coalesce(a.name,b.name) name,
nvl(a.num,0) num,nvl(b.sum,0) sum
from a full outer join b
on a.code = b.code1楼高手,对的。