使用日期时为空选择结果

| 初始数据:有一段查询,出于推理的原因,可以简化为下一段
SELECT MAX((CASE 
          WHEN to_char(sysdate, \'DY\') = \'SAT\' THEN 1 
          WHEN to_char(sysdate, \'DY\') = \'SUN\' THEN 1
          ELSE 0 END)) status 
FROM mytable WHERE mycondition;
问题:看来,如果mycondition导致空结果集,则当条件无法正常工作时,前两个结果将返回null而不是1。如果我仅将next替换为最后一行查询
FROM dual;
前两个条件完好无损。 条件:只能是查询,不能是ifs,var defs等。 如何执行这种选择,但不返回空值? 附注:可以使用NVL / NVL2,但这确实使事情复杂化。 提前致谢。     
已邀请:
        使用NVL功能:
SELECT NVL(MAX((CASE 
          WHEN to_char(sysdate, \'DY\') = \'SAT\' THEN 1 
          WHEN to_char(sysdate, \'DY\') = \'SUN\' THEN 1
          ELSE 0 END)), 1) status 
FROM mytable WHERE mycondition;
    
        在无法正常工作的情况下,您的问题出在MAX上。 当没有行匹配时,MAX和MIN返回null,而SUM和COUNT返回0。 恐怕den-javamaniac是正确的,您需要NVL,或者如果无法切换出MAX,则可能明智地使用DECODE。     

要回复问题请先登录注册