select bc,zm,bz='bb' from tempbc1 where exists(select 1 from bb bc=tempbc1.bc) union all select bc,zm,bz='wb' from tempbc1 where not exists(select 1 from bb bc=tempbc1.bc)
select bc,zm,decode(bb.bc,null,'wb','bb) bz from tempbc1,bb where tempbc1.bc=bb.bc(+);
select bc, zm, bz=decode(b.bc,null,'wb','bb') from tempbc1 a, (select distinct bc from bb) b where a.bc =(+) b.bc
你又没说叫我帮你优化....我只告诉你在Oracle中为什么报错
select bc, zm, bz=decode(b.bc,null,'wb','bb') from tempbc1 a, (select distinct bc from bb) b where a.bc = b.bc(+)
楼写了一个分号 :)select bc,zm,decode(bb.bc,null,'wb','bb') bz from tempbc1,bb where tempbc1.bc=bb.bc(+);或者:select bc,zm,nvl2(bb.bc,'bb','wb') bz from tempbc1,bb where tempbc1.bc=bb.bc(+);
union all
select bc,zm,bz='wb' from tempbc1 where not exists(select 1 from bb bc=tempbc1.bc)
from tempbc1,bb
where tempbc1.bc=bb.bc(+);
我把四楼的代码拿去执行,结果还是一样呀。用Case是我偷懒的写法呀!
bc,
zm,
bz=decode(b.bc,null,'wb','bb')
from
tempbc1 a,
(select distinct bc from bb) b
where
a.bc =(+) b.bc
bc,
zm,
bz=decode(b.bc,null,'wb','bb')
from
tempbc1 a,
(select distinct bc from bb) b
where
a.bc = b.bc(+)
:)select bc,zm,decode(bb.bc,null,'wb','bb') bz
from tempbc1,bb
where tempbc1.bc=bb.bc(+);或者:select bc,zm,nvl2(bb.bc,'bb','wb') bz
from tempbc1,bb
where tempbc1.bc=bb.bc(+);
我的意思就是这样。