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