采取以下查询...
select
trunc(dateX)-trunc(sysdate) daysTilX,
trunc(dateY)-trunc(sysdate) daysTilY,
least(trunc(dateX)-trunc(sysdate),trunc(dateY)-trunc(sysdate)) leastOfTheTwo
from myTable
如果dateX或dateY为null,则least()
返回null。我需要弄清楚如果dateX和dateY都为null,如何让leastOfTheTwo
列返回null,否则,我想要数字。有什么想法吗?
更新要明确,我不能在日期使用nvl
,因为它们代表截止日期。含义-1(延迟一天),0(今天),1(明天),null(既未设置截止日期)。
答案 0 :(得分:1)
select
trunc(dateX)-trunc(sysdate) daysTilX,
trunc(dateY)-trunc(sysdate) daysTilY,
least(trunc(nvl(dateX, dateY))-trunc(sysdate),trunc(nvl(dateY, dateX))-trunc(sysdate)) leastOfTheTwo
from myTable
答案 1 :(得分:0)
select
trunc(dateX)-trunc(sysdate) daysTilX,
trunc(dateY)-trunc(sysdate) daysTilY,
least(nvl(trunc(dateX)-trunc(sysdate),0),nvl(trunc(dateY)-trunc(sysdate),0)) leastOfTheTwo
from myTable