It's performance wise generally a bad idea to put functions in the
FROM
clause.
See if you can move them to the
SELECT
clause, then you can also filter them using a
CASE
.
Like this:
SELECT CASE
WHEN categorycolumn = 1 THEN function1(parameters)
WHEN categorycolumn = 2 THEN function2(parameters)
END AS MyResult
FROM...
If the results arent compatible it's easy enough to split into several CASEs.