Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pozwala warunkowo zwracać konkretne wartości z wielu porównań. Istnieją dwa typy oświadczeń przypadków:
Proste stwierdzenie przypadków, które porównuje wyrażenie z zestawem prostych wyrażeń, zwracając określone wartości.
Przeszukane stwierdzenie przypadku, które ocenia zestaw wyrażeń boolowskich, aby zwracać określone wartości.
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
Arguments
input_expression
Wyrażenie wielowymiarowe (MDX), które rozwiązuje się do wartości skalarnej.
when_expression
Określona wartość skalarna, względem której input_expression jest oceniana, a po wyliczeniu na prawdziwą zwraca wartość skalarną else_result_expression.
when_true_result_expression
Wartość skalarna zwracana, gdy klauzula WHEN jest obliczana jako true.
else_result_expression
Wartość skalarna zwracana, gdy żadna z klauzul KIEDY nie wychodzi jako prawdziwa.
Boolean_expression
Wyrażenie MDX, które oblicza wartość skalarną.
Remarks
Jeśli nie ma klauzuli ELSE, a wszystkie klauzule WHEN wyjdą jako fałszywe, wynik jest pustą komórką.
Prosta forma przypadku
MDX ocenia proste wyrażenie przypadku, rozdzielając input_expression na wartość skalarną. Ta wartość skalarna jest następnie porównywana z wartością skalarną when_expression. Jeśli wartości skalarne się zgadzają, instrukcja CASE zwraca wartość when_true_expression. Jeśli dwie wartości skalarne się nie pokrywają, obliczana jest kolejna klauzula KIEDY. Jeśli wszystkie klauzule WHEN wyjdą jako fałszywe, zwraca się wartość else_result_expression z klauzuli ELSE, jeśli występuje.
W poniższym przykładzie miara Reseller Order Count jest oceniana względem kilku klauzul KIEDY i zwraca wynik oparty na wartości miary Reseller Order Count za każdy rok. Dla wartości Reseller Order Count, które nie odpowiadają wartości skalarnej określonej w when_expression w klauzuli WHEN zwracana jest wartość skalarna else_result_expression .
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
Przeszukany wyraz przypadku
Aby użyć wyrażenia przypadków do wykonywania bardziej złożonych ocen, użyj przeszukanego wyrażenia przypadków. Ta wariacja wyrażenia wyszukiwania pozwala ocenić, czy wyrażenie wejściowe mieści się w zakresie wartości. MDX ocenia klauzule WHEN w kolejności, w jakiej pojawiają się w instrukcji CASE.
W poniższym przykładzie miara Liczby Zleceń Resellerów jest oceniana względem określonych Boolean_expression dla każdej z kilku klauzul KIEDY. Wynik jest zwracany na podstawie wartości miary Reseller Order Count za każdy rok. Ponieważ GDY klauzule są oceniane w kolejności, w jakiej się pojawiają, wszystkie wartości większe niż 6 można łatwo przypisać wartość "BARDZO DUŻE" bez konieczności wprostowego określania każdej wartości. Dla wartości liczby zamówień odsprzedawcy, które nie są określone w klauzuli KIEDY, zwracana jest wartość skalarna else_result_expression .
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