select a.dm,a.mc,b.sj from a,b where a.dm=b.dm(+);

解决方案 »

  1.   

    如果只有那一条的话
    select a.dm,a.mc,b.sj from a,b where a.dm=b.dm(+) order by a.dm 
    union
    select b.dm,b.ac,b.sj from b where dm='00';
    试试
      

  2.   

    order by...不可以出现在union语句内
      

  3.   

    哦,sorry
    只能嵌套了
    select * from (select a.dm,a.mc,b.sj from a,b where a.dm=b.dm(+) 
    union
    select b.dm,b.ac,b.sj from b where dm='00') order by dm ;
      

  4.   

    select a.dm as dm,a.mc as mc,b.sj as sj from a,b where a.dm=b.dm(+)
    union
    select b.dm as dm,b.mc as mc,b.sj as sj from b 
    order by dm;
      

  5.   

    select  *  from 
    (
    select a.dm ,a.mc,b.sj 
    from a,b
    where a.dm=b.dm(+)
    and a.mc=b.mc(+)
    union 
    select b.dm ,b.mc,b.sj 
    from a,b
    where a.dm(+)=b.dm
    and a.dm is null
    ) order by dm
      

  6.   

    select * from 
    (select a.dm,a.mc,b.sj 
    from a1 a,b1 b
    where a.dm=b.dm(+)
    union 
    select b.*
    from b1 b) order by 1
      

  7.   

    select isnull(a.dm,b.dm) ddm,a.mc,b.sj from a full join b on a.dm=b.dm order by ddm
      

  8.   

    create or replace view c
    as
    select a1.dm,a1.mc,b.sj 
      from (select dm,mc from b
            union 
            select dm,mc from a ) a1, t2 b
      where a1.dm=b.dm(+)
    order by 1;
    但你的oracle版本必须是8i及以上版本,因为8i以下版本的视图中不能有order by。
      

  9.   

    select dm, mc, sj, 1 seq
      from b
     where not exists (select 'x' from a
                        where a.dm = b.dm
                          and a.mc = b.mc)
    union all
    select a.dm, a.mc, b.sj, 2 seq
      from a, b
     where a.dm = b.dm (+)
       and a.mc = b.mc (+)
    order by 4, 1, 2