Есть ли способ использовать значение из теста CASE WHEN в качестве одного из его результатов, не выписывая оператор select дважды (поскольку он может быть длинным и грязным)? Например:
SELECT id,
CASE WHEN (
(SELECT MAX(value) FROM my_table WHERE other_value = 1) IS NOT NULL
)
THEN (
SELECT (MAX(value) FROM my_table WHERE other_value = 1
)
ELSE 0
END AS max_value
FROM other_table
Есть ли способ использовать результат первого выполнения инструкции SELECT (для теста) в качестве значения THEN? Я попытался использовать «AS max_value» после первого SELECT, но он дал мне ошибку SQL.
Обновление : Ой, как заметил Том Х., я забыл «НЕ НУЛЕВО» в моем первоначальном вопросе.