我有以下内容:
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。上面的查询有效,但有更好的方法吗?与案例陈述一样?
答案 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;