Sql Oracle日期与案例的差异

Sql Oracle日期与案例的差异,sql,oracle,date-arithmetic,Sql,Oracle,Date Arithmetic,我有以下资料: select nvl ( (select 1 from tableA, tableB where tableA.id(+) = 9999 and tableB.project_id(+) = tableA.project_id and sysdate - tableA.start_date < 120), 0) as myFlag from dual; 我试图看看项目开始日期是否少于120。上面的查询是有效的

我有以下资料:

 select nvl ( 
     (select 1
      from tableA, tableB 
      where tableA.id(+) = 9999
      and tableB.project_id(+) = tableA.project_id
      and sysdate - tableA.start_date < 120), 0) as myFlag from dual;

我试图看看项目开始日期是否少于120。上面的查询是有效的,但是有更好的方法吗?像案例陈述一样?

为什么要加入表B?
select 
  case 
      when sysdate-tableA.start_date < 120 then 1
      else 0
  end myFlag
from tableA, tableB 
where tableA.id(+) = 9999
and tableB.project_id(+) = tableA.project_id
你就不能这么做吗

SELECT CASE WHEN ID IS NULL THEN 0 ELSE 1 END
FROM TableA 
WHERE sysdate - TableA.start_date < 120 and TableA.id = 9999;

如果开始日期>120.selam Erkan,则查询不返回任何行。超级嗅觉sagolasin。