2012-03-24 138 views
-4

是否可以在case聲明中調用函數?是否可以在一個case語句中調用函數?

例子:

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

簡單方法找出:嘗試一下,如果你得到錯誤= >>>你不能。它甚至更快,然後問一個問題是什麼。 – gdoron 2012-03-24 22:09:23

+2

而你瞭解更多! – 2012-03-24 22:13:07

+2

當您嘗試過時發生了什麼? – dldnh 2012-03-24 22:15:16

回答

3

艱難的,你可以只嘗試...

CASE input_expression

input_expression 是當使用簡單CASE格式計算的表達式。 input_expression是任何有效的表達式。

什麼是有效的表達式?:

一個表達式可以是以下任意的:

  • 功能 < ====
  • 柱名稱
  • Variabl Ë
  • 子查詢
  • CASE,NULLIF或COALESCE

資源:

caseexpressions

+0

(請注意,存儲過程*不在該列表中...)無論如何,有一個鏈接到MSDN源? – 2012-03-24 22:14:13

0

當然可以,你缺少一個支架:

(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] 
相關問題