select A.名称,B.类型,nvl(B.类型,0) from A,B where A.类型(+)=B.类型没建表试,大致是这样

解决方案 »

  1.   

    SQL> select * from t1;NAME       TYPE
    ---------- ----------
    name1      A
    name2      B
    name3      CSQL> select * from t2;       NUM TYPE
    ---------- ----------
             1 A
             2 B
             3 CSQL> select * from (select name from t1),(select type from t2);NAME       TYPE
    ---------- ----------
    name1      A
    name2      A
    name3      A
    name1      B
    name2      B
    name3      B
    name1      C
    name2      C
    name3      C9 rows selected.SQL> select t2.name,t2.type,nvl(t1.type,0) from t1,(select * from (select name from t1),(select type from t2)) t2 where t1.name(+)=t2.name and t1.type(+)=t2.type;NAME       TYPE       NVL(T1.TYP
    ---------- ---------- ----------
    name1      A          A
    name1      B          0
    name1      C          0
    name2      A          0
    name2      B          B
    name2      C          0
    name3      A          0
    name3      B          0
    name3      C          C9 rows selected.