CASE 語句 (MDX)

可讓您有條件地從多個比較傳回特定值。 案例語句有兩種類型:

  • 比較運算式與一組簡單運算式以傳回特定值的簡單案例語句。

  • 搜尋案例語句,評估一組布林運算式以傳回特定值。

語法

  
Simple Case Statement  
CASE [input_expression]  
WHEN when_expression THEN when_true_result_expression  
[...n]  
[ELSE else_result_expression]  
END  
  
Search Case Statement  
CASE   
WHEN Boolean_expression THEN when_true_result_expression  
[...n]  
[ELSE else_result_expression]  
END  

引數

input_expression
解析為純量值的多維度運算式 (MDX) 運算式。

when_expression
評估input_expression 的指定純量值 ,當評估為 true 時,會傳回else_result_expression 純量值。

when_true_result_expression
WHEN 子句評估為 true 時所傳回的純量值。

else_result_expression
當 WHEN 子句都評估為 true 時,所傳回的純量值。

Boolean_expression
評估為純量值的 MDX 運算式。

備註

如果沒有 ELSE 子句,而且所有 WHEN 子句都會評估為 false,則結果會是空的資料格。

簡單案例運算式

MDX 會藉由將input_expression 解析 為純量值,來評估簡單的案例運算式。 然後,這個純量值會與when_expression 純量值進行比較。 如果兩個純量值相符,CASE 語句會傳回when_true_expression 的值 。 如果兩個純量值不相符,則會評估下一個 WHEN 子句。 如果所有 WHEN 子句都評估為 false,則會傳回 ELSE 子句else_result_expression的值

在下列範例中,轉售商訂單計數量詞會根據數個 WHEN 子句進行評估,並根據每年的 Reseller Order Count 量值傳回結果。 對於不符合 WHEN 子句中when_expression 指定純量值的轉銷商訂單計數值,則會傳回else_result_expression 純量值。

WITH MEMBER [Measures].x AS   
CASE [Measures].[Reseller Order Count]  
   WHEN 0 THEN 'NONE'  
   WHEN 1 THEN 'SMALL'  
   WHEN 2 THEN 'SMALL'  
   WHEN 3 THEN 'MEDIUM'  
   WHEN 4 THEN 'MEDIUM'  
   WHEN 5 THEN 'LARGE'  
   WHEN 6 THEN 'LARGE'  
      ELSE 'VERY LARGE'  
END  
SELECT Calendar.[Calendar Year] on 0  
, NON EMPTY [Geography].[Postal Code].Members ON 1  
FROM [Adventure Works]  
WHERE [Measures].x  

搜尋案例運算式

若要使用案例運算式來執行更複雜的評估,請使用搜尋的案例運算式。 此搜尋運算式的變化可讓您評估輸入運算式是否在值範圍內。 MDX 會依照這些子句出現在 CASE 語句中的順序來評估 WHEN 子句。

在下列範例中,會根據數個 WHEN 子句的指定 Boolean_expression 來評估 Reseller Order Count 量值。 結果會根據每年的 Reseller Order Count 量值傳回。 因為 WHEN 子句會依照它們出現的順序進行評估,所以所有大於 6 的值都可以輕鬆地指派 「VERY LARGE」 的值,而不需要明確指定每個值。 針對未在 WHEN 子句中指定的轉銷商訂單計數值,會傳回else_result_expression 純量值。

WITH MEMBER [Measures].x AS   
CASE   
   WHEN [Measures].[Reseller Order Count] > 6 THEN 'VERY LARGE'  
   WHEN [Measures].[Reseller Order Count] > 4 THEN 'LARGE'  
   WHEN [Measures].[Reseller Order Count] > 2 THEN 'MEDIUM'  
   WHEN [Measures].[Reseller Order Count] > 0 THEN 'SMALL'  
   ELSE "NONE"  
END  
SELECT Calendar.[Calendar Year] on 0,  
NON EMPTY [Geography].[Postal Code].Members on 1  
FROM [Adventure Works]  
WHERE [Measures].x  

另請參閱

MDX 腳本語句 (MDX)