CASE 진술서 (MDX)

여러 차례 비교에서 특정 값을 조건부로 반환할 수 있습니다. 케이스 진술에는 두 가지 유형이 있습니다:

  • 특정 값을 반환하기 위해 표현식과 단순한 표현식 집합을 비교하는 간단한 케이스 문입니다.

  • 특정 값을 반환하기 위해 불리언 표현식 집합을 평가하는 검색된 케이스 문장입니다.

Syntax

  
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  

Arguments

input_expression
스칼라 값으로 해결되는 다차원 표현식(MDX)입니다.

when_expression
input_expression를 평가하는 지정된 스칼라 값으로, 이 값이 참으로 평가되면 else_result_expression의 스칼라 값을 반환합니다.

when_true_result_expression
스칼라 값은 WHEN 절이 true로 평가될 때 반환됩니다.

else_result_expression
스칼라 값은 WHEN 절이 모두 true로 평가되지 않을 때 반환됩니다.

Boolean_expression
스칼라 값으로 평가하는 MDX 표현식입니다.

Remarks

ELSE 절이 없고 모든 WHEN 절이 false로 평가된다면, 결과는 빈 셀이 됩니다.

단순 경우의 표현

MDX는 단순한 경우식을 스칼라 값으로 해석하여 input_expression 평가합니다. 이 스칼라 값은 when_expression의 스칼라 값과 비교됩니다. 두 스칼라 값이 일치하면 CASE 문은 when_true_expression 값을 반환합니다. 두 스칼라 값이 일치하지 않으면 다음 WHEN 절을 평가합니다. 모든 WHEN 절이 false로 평가되면, ELSE 절의 else_result_expression 값(있다면)이 반환됩니다.

다음 예에서는 리셀러 주문 횟수 측정이 여러 WHEN 조항에 대해 평가되며, 각 연도별 리셀러 주문 측정 측정값의 가치를 바탕으로 결과를 반환합니다. 리셀러 주문 횟수 값이 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는 WHEN 절이 CASE 문장에 나타나는 순서대로 평가합니다.

다음 예에서는 리셀러 주문 횟수 측정이 여러 WHEN 조항 각각에 대해 지정된 Boolean_expression 에 대해 평가됩니다. 결과는 매년 리셀러 주문 횟수 측정값의 값을 기반으로 반환됩니다. WHEN 절은 나타나는 순서대로 평가되기 때문에, 6보다 큰 모든 값은 각 값을 명시적으로 지정하지 않고도 쉽게 "매우 큰" 값을 할당할 수 있습니다. 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