CASE 문(MDX)
업데이트: 2006년 12월 12일
여러 비교에서 조건에 따라 특정 값을 반환할 수 있습니다. CASE 문에는 다음과 같은 두 가지 유형이 있습니다.
- 식을 일련의 단순 식과 비교하여 특정 값을 반환하는 단순 CASE 문
- 일련의 부울 식을 계산하여 특정 값을 반환하는 검색된 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 else_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
true인 WHEN 절이 없을 때 반환되는 스칼라 값입니다.
- Boolean_expression
스칼라 값으로 계산되는 MDX 식입니다.
주의
ELSE 절이 없고 WHEN 절이 모두 false를 반환한 경우 결과는 빈 셀이 됩니다.
단순 CASE 식
MDX는 input_expression을 스칼라 값으로 확인하여 단순 CASE 식을 계산합니다. 그런 다음 이 스칼라 값은 when_expression의 스칼라 값과 비교됩니다. 두 스칼라 값이 일치하면 해당 CASE 문은 when_expression의 값을 반환합니다. 두 스칼라 값이 일치하지 않으면 다음 WHEN 절이 평가됩니다. 모든 WHEN 절이 false이면 ELSE 절의 값(있는 경우)이 반환됩니다.
다음 예에서는 여러 개의 WHEN 절에 대해 Reseller Order Count 측정값을 확인하고 각 연도의 Reseller Order Count 측정값에 따라 결과를 반환합니다. 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
검색된 CASE 식
CASE 식을 사용하여 보다 복잡한 평가를 수행하려면 검색된 CASE 식을 사용합니다. 이 검색 식의 변형을 사용하면 입력 식이 값 범위 내에 있는지 여부를 확인할 수 있습니다. MDX는 WHEN 절이 CASE 문에 나타나는 순서대로 WHEN 절을 반환합니다.
다음 예에서는 여러 개의 각 WHEN 절에 지정된 Boolean_expression에 대해 Reseller Order Count 측정값을 확인하고 각 연도의 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
참고 항목
관련 자료
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 7월 17일 |
|
2006년 12월 12일 |
|