Freigeben über


CASE-Anweisung (MDX)

Ermöglicht die bedingte Rückgabe bestimmter Werte aus mehreren Vergleichen. Die folgenden zwei Arten von CASE-Anweisungen stehen zur Verfügung:

  • Einfache CASE-Anweisungen, die einen Ausdruck mit mehreren einfachen Ausdrücken vergleichen, um bestimmte Werte zurückzugeben.

  • Komplexe CASE-Anweisungen, die eine Menge boolescher Ausdrücke auswerten, um bestimmte Werte zurückzugeben.

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  

Argumente

input_expression
Ein MDX-Ausdruck (Multidimensional Expressions), dessen Auflösung einen Skalarwert ergibt.

When_expression
Ein angegebener skalarer Wert, für den der input_expression ausgewertet wird, der bei der Auswertung auf true den skalaren Wert des else_result_expression zurückgibt.

when_true_result_expression
Der Skalarwert, der zurückgegeben wird, wenn die Auswertung der WHEN-Klausel den Wert true ergibt.

Else_result_expression
Der Skalarwert, der zurückgegeben wird, wenn keine Auswertung von WHEN-Klauseln den Wert true ergibt.

Boolean_expression
Ein MDX-Ausdruck, dessen Auswertung einen Skalarwert ergibt.

Bemerkungen

Ist keine ELSE-Klausel angegeben, und werden alle WHEN-Klauseln zu FALSE ausgewertet, ist das Ergebnis eine leere Zelle.

Einfache CASE-Ausdrücke

MDX wertet einen einfachen Groß-/Kleinschreibungsausdruck aus, indem die input_expression in einen skalaren Wert aufgelöst wird. Dieser skalare Wert wird dann mit dem skalaren Wert des when_expression verglichen. Wenn die beiden skalaren Werte übereinstimmen, gibt die CASE-Anweisung den Wert des when_true_expression zurück. Wenn die beiden Skalarwerte nicht übereinstimmen, wird die nächste WHEN-Klausel ausgewertet. Wenn alle WHEN-Klauseln auf false ausgewertet werden, wird der Wert von else_result_expression aus der ELSE-Klausel zurückgegeben, sofern vorhanden.

Im folgenden Beispiel wird das Reseller Order Count-Measure für mehrere WHEN-Klauseln ausgewertet und als Ergebnis der Wert des Reseller Order Count-Measures für jedes Jahr zurückgegeben. Bei Werten der Wiederverkäuferauftragsanzahl, die nicht mit einem skalaren Wert übereinstimmen, der in einer when_expression in einer WHEN-Klausel angegeben ist, wird der skalare Wert des else_result_expression zurückgegeben.

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  

Komplexe CASE-Ausdrücke

Verwenden Sie komplexe CASE-Ausdrücke, wenn Sie komplexere Auswertungen mithilfe von CASE-Ausdrücken durchführen möchten. Mit dieser Variante des Suchausdrucks können Sie auswerten, ob ein Eingabeausdruck innerhalb eines bestimmten Wertebereichs liegt. MDX wertet die WHEN-Klauseln in der Reihenfolge aus, in der die Klauseln in der CASE-Anweisung vorliegen.

Im folgenden Beispiel wird das Measure "Reseller Order Count" anhand der angegebenen Boolean_expression für jede von mehreren WHEN-Klauseln ausgewertet. Als Ergebnis wird der Wert des Reseller Order Count-Measures für jedes Jahr zurückgegeben. Da WHEN-Klausel in der Reihenfolge ausgewertet werden, in der sie vorliegen, können alle Werte, die größer als 6 sind, problemlos dem Wert "VERY LARGE" zugewiesen werden, ohne jeden einzelnen Wert explizit angeben zu müssen. Bei Werten der Wiederverkäuferbestellanzahl, die nicht in einer WHEN-Klausel angegeben sind, wird der skalare Wert des else_result_expression zurückgegeben.

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  

Weitere Informationen

MDX-Skriptanweisungen (MDX)