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。