这个SQL语句怎么写,在线等待,谢谢了!

A表:
userid funcid
a 01
a 02
B表:
funcid funcname
01 add
02 del
03 update
要求结果:
userid 'flag' funcid funcname
a true 01 add
a true 02 del
a false 03 update
[256 byte] By [lmh79-阿楚] at [2007-12-16]
# 1
---如果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
jlandzpa-jlandzpa at 2007-10-23 > top of Msdn China Tech,Oracle,开发...
# 2
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 02

SQL> select * from b;

FU FUNCNAME
-- ----------
01 add
02 del
03 update

SQL> 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
zhaoyongzhu-zhaoyongzhu at 2007-10-23 > top of Msdn China Tech,Oracle,开发...
# 3
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
zhaoyongzhu-zhaoyongzhu at 2007-10-23 > top of Msdn China Tech,Oracle,开发...
# 4
同一楼上的
select nvl(a.userid,'a')
zzyfoot-fringe at 2007-10-23 > top of Msdn China Tech,Oracle,开发...
# 5
不要意思,没有完全表达出来!

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
lmh79-阿楚 at 2007-10-23 > top of Msdn China Tech,Oracle,开发...
# 6
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(+)
/

搞定了,谢谢各位,给分!
lmh79-阿楚 at 2007-10-23 > top of Msdn China Tech,Oracle,开发...
# 7
SQL> select * from a;

US FU
-- --
a 01
a 02
b 01
b 02
b 03

SQL> select * from b;

FU FUNCNAME
-- ----------
01 add
02 del
03 update

SQL> 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 update

SQL> 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
zhaoyongzhu-zhaoyongzhu at 2007-10-23 > top of Msdn China Tech,Oracle,开发...