Я написал рекурсивную функцию и в зависимости от вывода мне нужно выбрать разные поля.Мой вопрос сейчас, как я могу сделать это несколько раз, не вызывая функцию более одного раза?Сейчас я просто использую условие CASE WHEN...
и проверяю каждый раз, что возвращают функции.(Это всего лишь псевдокод и ничего реального не делает, просто для понимания)
SELECT
id,
(CASE WHEN (function(id) > 0)
THEN field1
ELSE field2
END) as value1,
(CASE WHEN (function(id) > 0)
THEN field3
ELSE field4
END) as value2,
(CASE WHEN (function(id) > 0)
THEN field5
ELSE field6
END) as value3
FROM table1
...
Как я могу оптимизировать этот запрос и вызвать функцию только один раз?Заранее спасибо!