【发布时间】:2014-12-31 18:12:53
【问题描述】:
我正在从表 table_a 中获取列最新控制号。如果此表中没有员工的行,则它应该返回 null。为此我创建了一个查询
table_a
control_num emp_num approv_begin_date approv_end_date prov_end_date prov_begin_date
1 10 30-NOV-2014 30-JAN-2014 30-NOV-2014 30-JAN-2014
table_b
EMP_NUM NAM
10 XYZ
20 ABC
我创建了一个查询:-
select nam,control_num
from table_a a,table_b b
where sysdate between approv_begin_date(+) and approv_end_date(+)
这给了我正确的输出
nam control_num
10 1
20
现在条件发生了变化,我还必须考虑 prov_end_date 以防批准日期为空...... 为此,我创建了以下条件
select nam,control_num
from table_a a,table_b b
where sysdate between DECODE (approv_begin_date
, NULL, a.prov_begin_date
, a.approv_begin_date)and DECODE (approv_end_date
, NULL, a.prov_end_date
, a.approv_end_date)
this will just give me :
nam control_num
10 1
我如何在这里使用外部连接?
【问题讨论】: