Oracle日期差异与案例

时间:2011-04-05 16:40:12

标签: 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。上面的查询有效,但有更好的方法吗?与案例陈述一样?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

你为什么还要加入B表? 你不能这样做吗?

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