我从两个子查询s1和s2中选择。如果s2中的列的值为null,我可以使用nvl来检索s1中的列吗?
select
s1.name_last
nvl(s2.proj_mgr, s1.func_mgr)
from
(...) s1
left outer join
(...) s2
on
s1.empid = s2.owner_id
;
答案 0 :(得分:1)
我建议你改用coalesce()
。它有两个优点。首先,它是ANSI标准,因此可用于多个数据库。其次,它可能需要多个参数:
select s1.name_last, coalesce(s2.proj_mgr, s1.func_mgr)
from (...) s1 left outer join
(...) s2
on s1.empid = s2.owner_id
;