Исходные данные: имеют параграф запроса, который в целях аргументации может быть упрощен до следующего
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 приводит к пустому результирующему набору первых двух, когда условия работают не так, как должно, и возвращает ноль вместо 1. Если я просто заменю последнюю строку запроса на следующие
FROM dual;
первые две, когда условия работают безупречно.
Условие: Это должен быть только запрос, без ifs, var defs и т. Д.
Как можно выполнить этот тип выбора, но без нулевого значениявернулся?
PS: Можно использовать NVL / NVL2, но это действительно усложняет дело.
Заранее спасибо.