Можно ли вызывать функции внутри оператора case? - PullRequest
0 голосов
/ 25 марта 2012

Можно ли вызывать функции внутри оператора case?

Пример:

(CASE WHEN (((POWER((1+x1/x2),Term) - 1) > 0) THEN 
    10 ELSE dbo.fnx(x1,x2,x3) END) as [123]

Ответы [ 2 ]

3 голосов
/ 25 марта 2012

Хотя вы можете просто попробовать ...

CASE input_expression

input_expression Выражение, вычисленное при использовании простого формата CASE.Аргумент input_expression - любое допустимое выражение.

Что такое допустимое выражение?:

Выражение может быть любым из следующих:

  • Константа
  • Функция <==== </li>
  • Имя столбца
  • Переменная
  • Подзапрос
  • CASE, NULLIF,или COALESCE

ресурсы:

case и выражения

0 голосов
/ 25 марта 2012

Конечно, вы можете, вам не хватает скобки:

(CASE WHEN (((POWER((1+x1/x2),Term) - 1) > 0)) THEN   
10 ELSE dbo.fnx(x1,x2,x3) END) as [123]  

Если это не решит вашу проблему, вы можете исследовать права пользователя

РЕДАКТИРОВАТЬ:

Если подумать, что у вас слишком много скобок, это гораздо удобнее для чтения:

CASE WHEN POWER(1+x1/x2,Term) - 1 > 0 THEN   
10 ELSE dbo.fnx(x1,x2,x3) END as [123]  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...