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
谢谢

解决方案 »

  1.   


    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;
      

  2.   

    --提供一个笨方法
    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
      

  3.   


    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楼高手,对的。