2011-04-05 20 views
1

甲骨文的時間差,我有以下:與案件

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
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 
+0

selam Erkan。超級olmus sagolasin。 – CFNinja 2011-04-05 17:11:58

+0

就像一個魅力。 – CFNinja 2011-04-05 17:51:23

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; 
+0

如果start_date> 120,則查詢不返回任何行。 – CFNinja 2011-04-05 17:06:35