---如果a是已知的.11:06:03 jlanzpa817>select distinct nvl(aa.userid,'a'),decode(aa.userid,'','false','true') flag,
11:06:38   2         bb.funcid,bb.funcname from aa,bb
11:06:38   3  where aa.funcid(+) = bb.funcid ;NVL(AA.USE FLAG  FUNCID     FUNCNAME
---------- ----- ---------- ----------
a          true  01         add
a          true  02         del
a          false 03         update

解决方案 »

  1.   

    SQL> create table a (userid varchar2(2),funcid varchar2(2));Table created.SQL> create table b (funcid varchar2(2),funcname varchar2(10));Table created.SQL> insert into a values ('a','01');1 row created.SQL> insert into a values ('a','02');1 row created.SQL> insert into b values ('01','add');1 row created.SQL> insert into b values ('02','del');1 row created.SQL> insert into b values ('03','update');1 row created.SQL> commit;Commit complete.SQL> select * from a;US FU
    -- --
    a  01
    a  02SQL> select * from b;FU FUNCNAME
    -- ----------
    01 add
    02 del
    03 updateSQL> select a.userid,(case when a.funcid=b.funcid then 'true' else 'false' end) flag,b.funcid,funcname from a,
    b where b.funcid=a.funcid(+);US FLAG  FU FUNCNAME
    -- ----- -- ----------
    a  true  01 add
    a  true  02 del
       false 03 update
      

  2.   

    SQL> select nvl(a.userid,(select userid from a where rownum=1)),(case when a.funcid=b.funcid then 'true' else 
    'false' end) flag,b.funcid,funcname from a,b where b.funcid=a.funcid(+);NV FLAG  FU FUNCNAME
    -- ----- -- ----------
    a  true  01 add
    a  true  02 del
    a  false 03 update
      

  3.   

    同一楼上的
    select nvl(a.userid,'a')
      

  4.   

    不要意思,没有完全表达出来!A表:
    userid        funcid
    a             01
    a             02
    b             01
    b             02
    b             03要求结果:
    当查userid='a'时:
    'flag'  funcid   funcname
     true    01       add
     true    02       del
     false   03       update当查userid='b'时:
    'flag'  funcid   funcname
     true    01       add
     true    02       del
     true    03       update
      

  5.   

    select (case when a.usr_func_id=b.af_id and a.user_id=8
          then 'true'
          else 'false'
          end) flag,
    b.af_id,
    b.af_func_name
    from
    re_wa_user_right a,
    re_wa_adm_funclist b
    where b.af_id=a.usr_func_id(+)
    /搞定了,谢谢各位,给分!
      

  6.   

    SQL> select * from a;US FU
    -- --
    a  01
    a  02
    b  01
    b  02
    b  03SQL> select * from b;FU FUNCNAME
    -- ----------
    01 add
    02 del
    03 updateSQL> select (case when a.funcid=b.funcid then 'true' else 'false' end) flag,b.funcid,funcname from (select * f
    rom a where userid='a') a,b where  b.funcid=a.funcid(+);FLAG  FU FUNCNAME
    ----- -- ----------
    true  01 add
    true  02 del
    false 03 updateSQL> select (case when a.funcid=b.funcid then 'true' else 'false' end) flag,b.funcid,funcname from (select * f
    rom a where userid='b') a,b where  b.funcid=a.funcid(+);FLAG  FU FUNCNAME
    ----- -- ----------
    true  01 add
    true  02 del
    true  03 update