Добрый день.
select udf1(T1.params) as fn1
udf2(fn1) as fn2 -- Вот такой вызов
from t_name T1
Здравствуйте, Аноним, Вы писали:
нет
только если через
select udf2(fn1) from
(
select udf1(...)
)
или же так
select udf1(T1.params) as fn1,
udf2(udf1(T1.params)) as fn2
from t_name T1
У меня есть подозрение, что оптимайзер сообразит что к чему, но я его не проверял...
Здравствуйте, Аноним, Вы писали:
А>Добрый день.
SELECT fn1, udf2(fn1) as fn2
FROM (SELECT udf1(T1.params) as fn1
FROM t_name T1) t1_fn
Здравствуйте, Аноним, Вы писали:
BG>>У меня есть подозрение, что оптимайзер сообразит что к чему, но я его не проверял...
А>А как можно увидеть, что он понял?
самый простой и верный способ который приходит в голову — добавить логгинг в udf функцию, а потом посмотреть что в этом логгинге написано, и сколько раз функция вызывалась для известного числа записей.
Если сподобитесь на такой эксперимент, то опубликуйте результаты — всем будет интересно
Здравствуйте, Аноним, Вы писали:
А>Добрый день.
А>А>select udf1(T1.params) as fn1
А> udf2(fn1) as fn2 -- Вот такой вызов
А>from t_name T1
А>
Если SQL2005, используйте CROSS APPLY
Здравствуйте, Oleg, Вы писали:
O>Здравствуйте, Аноним, Вы писали:
А>>Добрый день.
А>>А>>select udf1(T1.params) as fn1
А>> udf2(fn1) as fn2 -- Вот такой вызов
А>>from t_name T1
А>>
O>Если SQL2005, используйте CROSS APPLY
Не тот случай. cross apply используется в предложении from.