Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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