CASE 문(MDX)CASE Statement (MDX)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

여러 비교에서 조건에 따라 특정 값을 반환할 수 있습니다.Lets you conditionally return specific values from multiple comparisons. CASE 문에는 다음과 같은 두 가지 유형이 있습니다.There are two types of case statements:

  • 식을 일련의 단순 식과 비교하여 특정 값을 반환하는 단순 CASE 문A simple case statement that compares an expression to a set of simple expressions to return specific values.

  • 일련의 부울 식을 계산하여 특정 값을 반환하는 검색된 CASE 문A searched case statement that evaluates a set of Boolean expressions to return specific values.

구문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_expressioninput_expression
스칼라 값으로 확인되는 MDX 식입니다.A Multidimensional Expressions (MDX) expression that resolves to a scalar value.

when_expressionwhen_expression
특정 스칼라 값입니다는 input_expression 계산 된 시기의 스칼라 값 true를 반환 하도록 평가 else_result_expression합니다.A specified scalar value against which the input_expression is evaluated, which when evaluated to true, returns the scalar value of the else_result_expression.

when_true_result_expressionwhen_true_result_expression
WHEN 절이 true일 때 반환되는 스칼라 값입니다.The scalar value returned when the WHEN clause evaluates to true.

else_result_expressionelse_result_expression
true인 WHEN 절이 없을 때 반환되는 스칼라 값입니다.The scalar value returned when none of the WHEN clauses evaluate to true.

Boolean_expressionBoolean_expression
스칼라 값으로 계산되는 MDX 식입니다.An MDX expression that evaluates to a scalar value.

주의Remarks

ELSE 절이 없고 WHEN 절이 모두 false를 반환한 경우 결과는 빈 셀이 됩니다.If there is no ELSE clause, and all WHEN clauses evaluate to false, the result is an empty cell.

단순 CASE 식Simple Case Expression

MDX를 확인 하 여 단순 case 식을 계산는 input_expression 을 스칼라 값입니다.MDX evaluates a simple case expression by resolving the input_expression to a scalar value. 이 스칼라 값은 다음의 스칼라 값과 비교는 when_expression합니다.This scalar value is then compared to the scalar value of the when_expression. 두 스칼라 값이 일치 하는 경우 해당 CASE 문은 값을 반환 된 when_true_expression합니다.If the two scalar values match, the CASE statement returns the value of the when_true_expression. 두 스칼라 값이 일치하지 않으면 다음 WHEN 절이 실행됩니다.If the two scalar values do not match, the next WHEN clause is evaluated. 모든 WHEN 절 값을 false로 평가 하는 경우 else_result_expression ELSE 절의 있는 경우 반환 됩니다.If all of the WHEN clauses evaluate to false, the value of else_result_expression from the ELSE clause, if any, is returned.

다음 예에서는 여러 WHEN 절에 대해 Reseller Order Count 측정값을 확인하고 각 연도의 Reseller Order Count 측정값에 따라 결과를 반환합니다.In the following example, the Reseller Order Count measure is evaluated against several WHEN clauses and returns a result based on the value of the Reseller Order Count measure for each year. Reseller Order Count 값에 지정 된 스칼라 값과 일치 하지 않는 한 when_expression 의 스칼라 값 WHEN 절에는 else_result_expression 반환 됩니다.For Reseller Order Count values that do not match a scalar value specified in a when_expression in a WHEN clause, the scalar value of the else_result_expression is returned.

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 식Searched Case Expression

CASE 식을 사용하여 보다 복잡한 평가를 수행하려면 검색된 CASE 식을 사용합니다.To use the case expression to perform more complex evaluations, use the searched case expression. 이 검색 식의 변형을 사용하면 입력 식이 값 범위 내에 있는지 여부를 확인할 수 있습니다.This variation of the search expression allows you to evaluate whether an input expression is within a range of values. MDX는 WHEN 절이 CASE 문에 나타나는 순서대로 WHEN 절을 반환합니다.MDX evaluates the WHEN clauses in the order that these clauses appear in the CASE statement.

다음 예에서는 Reseller Order Count 측정값을 확인에 대해 지정 된 Boolean_expression 여러 개의 각 WHEN 절에 대 한 합니다.In the following example, the Reseller Order Count measure is evaluated against the specified Boolean_expression for each of several WHEN clauses. 각 연도의 Reseller Order Count 측정값에 따라 결과를 반환합니다.A result is returned based on the value of the Reseller Order Count measure for each year. WHEN 절은 나타나는 순서대로 확인되므로 6보다 큰 모든 값에 대해 각 값을 명시적으로 지정하지 않고 "VERY LARGE"라는 값을 쉽게 할당할 수 있습니다.Because WHEN clauses are evaluated in the order they appear, all values larger than 6 can easily be assigned the value of "VERY LARGE" without having to specify each value explicitly. 스칼라 값 WHEN 절에 지정 되지 않은 Reseller Order Count 값의 else_result_expression 반환 됩니다.For Reseller Order Count values that are not specified in a WHEN clause, the scalar value of the else_result_expression is returned.

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  

관련 항목:See Also

MDX 스크립팅 문 ( Mdx)MDX Scripting Statements (MDX)