У меня есть следующее заявление:Вызов функции из внутри оператора выбора - SQL
SELECT CASE WHEN (1 = 1) THEN 10 ELSE dbo.at_Test_Function(5) END AS Result
Я просто хочу, чтобы подтвердить, что в этом случае функция обыкновение быть выполнена?
Моя причина спрашивать, что эта функция особенно медленно, и если critiria верно, я хочу, чтобы избежать вызова функции ...
Приветствия Энтони
см. Эту статью Ицика Бен-Гана, показывающую, как эта ложная презумпция может привести к делению на нулевые ошибки: http://www.sqlmag.com/Articles/ArticleID/9148/pg /2/2.html –
BTW, если возможно, попытайтесь создать функцию-обертку, которая выполняет проверку и вызывает исходную функцию. IF/THEN/ELSE гарантированно не выполняет ветку, которая не соответствует вашему состоянию. –