本帖最后由 ealff007 于 2014-11-19 09:31:19 编辑

解决方案 »

  1.   

    select NVL(T1.id,T2.id) id,T1.vdef2,T1.vdef3, T2.vdef5, T2.vdef6
    from(
    select id,vdef2,vdef3,row_number()over(partition by id,vdef2 order by vdef3) rn
    from a1) T1 full outer join (
    select id,vdef5,vdef6,row_number()over(partition by id,vdef5 order by vdef6) rn
    from a2) T2
    on T1.id = T2.id
    and T1.vdef2 = T2.vdef5
    AND T1.RN=T2.RN
    order by NVL(T1.id,T2.id),NVL(T1.vdef2,T2.vdef5),NVL(T1.rn,T2.rn)
      

  2.   

    select nvl(a1.id,a2.id), a1.vdef2, a1.vdef3, a2.vdef5, a2.vdef6
      from a1
      full outer join a2
        on a1.id = a2.id
       and a1.vdef2 = a2.vdef5
       and a1.vdef3 = a2.vdef6
     order by nvl(a1.id,a2.id), a1.vdef2, a1.vdef3