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 es, bedingt bestimmte Werte aus mehreren Vergleichen zurückzugeben. Es gibt zwei Arten von Fallaussagen:
Eine einfache Kasusausweisung, die einen Ausdruck mit einer Menge einfacher Ausdrücke vergleicht, um spezifische Werte zurückzugeben.
Eine gesuchte Fallausweisung, die eine Menge Boolescher Ausdrücke auswertet, um spezifische 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 Multidimensional Expressions (MDX)-Ausdruck, der sich auf einen skalaren Wert auflöst.
when_expression
Ein spezifizierter skalarer Wert, gegen den der input_expression ausgewertet wird, der bei True den skalaren Wert des else_result_expression zurückgibt.
when_true_result_expression
Der skalare Wert wird zurückgegeben, wenn die WENN-Klausel auf true auswertet.
else_result_expression
Der skalare Wert wurde zurückgegeben, wenn keine der WENN-Klauseln auf true auswertet.
Boolean_expression
Ein MDX-Ausdruck, der zu einem skalaren Wert auswertet.
Bemerkungen
Wenn es keine ELSE-Klausel gibt und alle WENN-Klauseln als falsch auswerten, ist das Ergebnis eine leere Zelle.
Einfacher Kasusausdruck
MDX bewertet einen einfachen Fallausdruck, indem er die input_expression auf einen skalaren Wert auflöst. 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 der when_true_expression zurück. Wenn die beiden Skalarwerte nicht übereinstimmen, wird die nächste WENN-Klausel ausgewertet. Wenn alle WENN-Klauseln auf false auswerten, wird der Wert von else_result_expression aus der ELSE-Klausel, falls vorhanden, zurückgegeben.
Im folgenden Beispiel wird das Maß Reseller Order Count mit mehreren WANN-Klauseln ausgewertet und liefert ein Ergebnis basierend auf dem Wert der Reseller Order Count-Messung für jedes Jahr. Für Reseller Order Count-Werte, die nicht mit einem in einer when_expression in einer WENN-Klausel angegebenen skalaren Wert übereinstimmen, 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
Gesuchter Kasus-Ausdruck
Um den Fallausdruck für komplexere Evaluationen zu verwenden, verwenden Sie den gesuchten Fallausdruck. Diese Variation des Suchausdrucks ermöglicht es Ihnen zu bewerten, ob ein Eingabeausdruck innerhalb eines Wertebereichs liegt. MDX bewertet die WENN-Klauseln in der Reihenfolge, in der diese Klauseln in der CASE-Anweisung erscheinen.
Im folgenden Beispiel wird das Maß Reseller Order Count anhand der angegebenen Boolean_expression für jede der mehreren WENN-Klauseln ausgewertet. Ein Ergebnis wird basierend auf dem Wert der Reseller Order Count-Messung für jedes Jahr zurückgegeben. Da WENN-Klauseln in der Reihenfolge ausgewertet werden, in der sie erscheinen, können alle Werte größer als 6 problemlos mit dem Wert "SEHR GROẞ" versehen werden, ohne jeden Wert explizit angeben zu müssen. Für Reseller Order Count-Werte, die in einer WENN-Klausel nicht angegeben sind, wird der skalare Wert der 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