CASE

The CASE function evaluates each row in the dataset according to one or more input conditions, and outputs the specified result when the input conditions are met.

Syntax

CASE input_attribute WHEN condition THEN output_expression [...] [ELSE other_output_expression] END

OR

CASE WHEN input_expression THEN output_expression [...] [ELSE other_output_expression] END

Return Value

Returns one value per row of the same type as the output expression. In calculated measure expressions, all output expressions must be a measure.

Input Parameters

input_attribute
The measure attribute whose values you want to evaluate.
WHEN input_condition or input_expression
Required. The WHEN keyword is used to specify one or more Boolean expressions. If an input value meets the condition, then the output expression is applied. The input can be a dimension or a measure.
THEN output_expression
Required. The THEN keyword is used to specify an output expression when the specified conditions are met. The output expression must be a measure.
ELSE other_output_expression
Optional. The ELSE keyword can be used to specify an alternate output expression to use when the specified conditions are not met. The output expression must be a measure. If an ELSE expression is not supplied, ELSE NULL is the default.
END
Required. Denotes the end of CASE function processing.

Examples

Return a different shipping rate measure based on the value in the region dimension:

CASE WHEN [Region].CurrentMember.Name="West" THEN [Measures].[ShipRate1] WHEN [Region].CurrentMember.Name="East" THEN [Measures].[ShipRate2] ELSE [Measures].[ShipRate3] END