Udostępnij za pośrednictwem


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