CASE-Anweisung (MDX)
Aktualisiert: 12. Dezember 2006
Ermöglicht das bedingte Zurückgeben 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 else_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 Skalarwert, für den input_expression ausgewertet wird. Wenn die Auswertung den Wert true ergibt, wird der Skalarwert von else_result_expression zurückgegeben.
- 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.
Hinweise
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 CASE-Ausdruck durch Auflösen von input_expression in einen Skalarwert aus. Dieser Skalarwert wird dann mit dem Skalarwert von when_expression verglichen. Wenn die beiden Skalarwerte übereinstimmen, gibt der CASE-Ausdruck den Wert von when_expression zurück. Wenn die beiden Skalarwerte nicht übereinstimmen, wird die nächste WHEN-Klausel ausgewertet. Wenn die Auswertung aller WHEN-Klauseln den Wert false ergibt, wird der Wert der ELSE-Klausel, sofern vorhanden, zurückgegeben.
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. Für Reseller Order Count-Werte, die nicht dem Skalarwert entsprechen, der als when_expression in der WHEN-Klausel angegeben ist, wird der Skalarwert von 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 Reseller Order Count-Measure für das angegebene Boolean_expression-Argument für eine Reihe von 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. Für Reseller Order Count-Werte, die nicht in einer WHEN-Klausel angegeben sind, wird der Skalarwert von 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
Siehe auch
Andere Ressourcen
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
17. Juli 2006 |
|
12. Dezember 2006 |
|