CASE 문(MDX)

여러 비교에서 특정 값을 조건부로 반환할 수 있습니다. 사례 문에는 다음 두 가지 유형이 있습니다.

  • 식을 단순 식 집합과 비교하여 특정 값을 반환하는 간단한 사례 문입니다.

  • 특정 값을 반환하기 위해 부울 식 집합을 평가하는 검색된 case 문입니다.

구문

  
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 절에 대해 평가되고 매년 재판매인 주문 수 측정값의 값을 기반으로 결과를 반환합니다. WHEN 절의 when_expression 지정된 스칼라 값과 일치하지 않는 Reseller Order Count 값의 경우 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  

검색된 대/소문자 식

CASE 식을 사용하여 보다 복잡한 평가를 수행하려면 검색된 CASE 식을 사용합니다. 검색 식의 이 변형을 사용하면 입력 식이 값 범위 내에 있는지 여부를 평가할 수 있습니다. MDX는 WHEN 절이 CASE 문에 나타나는 순서대로 WHEN 절을 반환합니다.

다음 예제에서는 Reseller Order Count 측정값이 여러 WHEN 절 각각에 대해 지정된 Boolean_expression 대해 평가됩니다. 각 연도의 Reseller Order Count 측정값에 따라 결과를 반환합니다. WHEN 절이 나타나는 순서대로 평가되므로 6보다 큰 모든 값은 각 값을 명시적으로 지정하지 않고도 "VERY LARGE" 값을 쉽게 할당할 수 있습니다. WHEN 절에 지정되지 않은 Reseller Order Count 값의 경우 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)