Instrukcja przypadek (MDX)
Umożliwia warunkowo zwrócić konkretnych wartości z wielu porównań.Istnieją dwa rodzaje przypadek instrukcji:
Prosta instrukcja przypadek porównuje wyrażenie z zestaw prostych wyrażeń do zwracania określonej wartości.
Przeszukiwany instrukcja przypadek, którego wynikiem jest zbiorem wyrażeniach logicznych do zwracania określonej wartości.
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
Argumenty
input_expression
Wyrażenie Multidimensional Expressions (MDX), która jest rozpoznawana jako wartość wartość skalarna.when_expression
Określić wartość wartość skalarna, przeciwko którym input_expression sprawdzana jest zgodność, podczas których obliczane, aby zwraca wartość true, wartość wartość skalarna else_result_expression.when_true_result_expression
Zwracana wartość wartość skalarna, podczas gdy klauzula ma wartość true.else_result_expression
Wartość wartość skalarna, zwracane, gdy żaden z klauzul podczas oceny na wartość true.Boolean_expression
Wyrażenie MDX, którego wynikiem jest wartość wartość skalarna.
Remarks
Jeśli nie ma żadnych klauzula ELSE, a wszystkie klauzule podczas oceny na wartość false, to wynik jest pustej komórka.
Proste wyrażenie przypadek
MDX jest proste wyrażenie przypadek przez przetłumaczenie input_expression Aby wartość wartość skalarna. Ta wartość wartość skalarna następnie porównywana jest wartość wartość skalarna when_expression. Jeśli te dwie wartości wartość skalarna pasują do siebie, przypadek instrukcja zwraca wartość when_expression. Jeżeli nie są zgodne z dwóch wartości wartość skalarna, sprawdzana jest zgodność klauzula podczas następnej.Jeśli wszystkie klauzule podczas mają wartość false, wartość else_result_expression z ELSE, klauzula, jest zwracany.
W poniższym przykładzie miara Reseller kolejność licznik jest wyznaczane przeciwko kilku klauzul i zwraca wynik na podstawie wartości z liczby zamówień sprzedawcę miara dla każdego roku.Liczba zamówień Reseller wartości, które nie pasują do wartości wartość skalarna, określonej w polu when_expression w klauzula gdy wartość wartość skalarna else_result_expression jest zwracany.
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
Wyszukiwane wyrażenie przypadek
Aby użyć przypadek wyrażenie do wykonywania bardziej skomplikowanych ocen, należy użyć wyszukiwanych wyrażeń przypadek.Taka zmiana wyszukiwanego wyrażenia można ocenić, czy wyrażenie wejściowy jest z zakres wartości.MDX oblicza klauzule podczas w takiej kolejności, w tych klauzul występują przypadek instrukcja.
W poniższym przykładzie sprawdzana jest zgodność miara Reseller liczba zamówień od podanego Boolean_expression dla każdego z kilku klauzul gdy. Wynik jest zwracany oparte na wartości miara Reseller liczba zamówień dla każdego roku.Ponieważ po klauzule są szacowane w kolejności są wyświetlane, wszystkie wartości większe niż 6 można łatwo przypisać wartość "" bardzo MAX.K"bez konieczności wyraźnie określić poszczególne wartości.Liczba zamówień Reseller wartości, które nie zostały określone w klauzula gdy, wartość wartość skalarna else_result_expression jest zwracany.
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