У меня есть запрос оракула, и его часть вычисляет какое-то значение с помощью DECODE. Например:
SELECT ...,
(SELECT DECODE((SELECT 23 FROM DUAL),
0, null,
(SELECT 23 FROM DUAL))
FROM DUAL)
FROM ...
] Здесь значение "23" вычисляется во время выполнения, и это довольно сложные объединения - несколько таблиц, использует PARTITION BY
и т.д. Поэтому я хочу избежать выполнения одного и того же подзапроса, если значение не равно «0». Есть ли способ написать что-то вроде этого
SELECT ...,
(SELECT DECODE ((SELECT 23 FROM DUAL) as test,
0, null,
test)
FROM DUAL)
FROM ...