postgresql: использование IF или CASE для выбора хранимую функцию из которой производить выборку

есть такая начинка функции:

SELECT
    f.id AS id, 
    t.name AS name
FROM 
    func1(param1) AS f
    LEFT JOIN table AS t ON t.id = f.id

есть параметр функции param2 integer

как сделать так, чтобы если param2 = 0, то в запросе использовалась бы функция func1, а если param2 = 1, то функция func2?

SELECT
    f.id AS id, 
    t.name AS name
FROM 
    func1(param2) AS f
    LEFT JOIN table AS t ON t.id = f.id

понимаю, что можно сделать через динамический запрос, т.е. сначала в виде текста будет сформирован запрос

'SELECT
    f.id AS id, 
    t.name AS name
FROM 
    ' || func_name || '(param1) AS f
    LEFT JOIN table AS t ON t.id = f.id'

но можно ли сделать более просто - напрямую?


Ответы (0 шт):