PŘÍPADOVÉ prohlášení (MDX)

Umožňuje vám podmíněně vracet konkrétní hodnoty z více porovnání. Existují dva typy případových tvrzení:

  • Jednoduché pádové tvrzení, které porovnává výraz se sadou jednoduchých výrazů a vrací specifické hodnoty.

  • Vyhledáné případové tvrzení, které vyhodnocuje sadu Booleových výrazů tak, aby vrátilo specifické hodnoty.

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
Výraz Multidimensional Expressions (MDX), který se rozloží na skalární hodnotu.

when_expression
Specifikovaná skalární hodnota, vůči které je input_expression vyhodnocena, která při vyhodnocení jako pravda vrací skalární hodnotu else_result_expression.

when_true_result_expression
Skalární hodnota se vrátí, když klauzule WHEN vyhodnotí jako true.

else_result_expression
Skalární hodnota se vrací, když žádná z klauzulí WHEN není vyhodnocena jako true.

Boolean_expression
MDX výraz, který se vyhodnocuje na skalární hodnotu.

Remarks

Pokud neexistuje klauzule ELSE a všechny klauzule WHEN jsou vyhodnoceny jako nepravdivé, výsledkem je prázdná buňka.

Jednoduchý pádový výraz

MDX vyhodnocuje jednoduchý případový výraz tak, že input_expression vyřeší na skalární hodnotu. Tato skalární hodnota se pak porovná se skalární hodnotou when_expression. Pokud se obě skalární hodnoty shodují, příkaz CASE vrátí hodnotu when_true_expression. Pokud se dvě skalární hodnoty neshodují, vyhodnocuje se další klauzule KDY. Pokud všechny klauzule WHEN vyhodnotí jako nepravdivé, hodnota else_result_expression z ELSE klauzule, pokud nějaká je, se vrátí.

V následujícím příkladu je měření počtu objednávek prodejce vyhodnoceno vůči několika klauzulím KDY a vrací výsledek založený na hodnotě ukazatele počtu objednávek prodejce za každý rok. Pro hodnoty počtu objednávek od prodejce, které neodpovídají skalární hodnotě uvedené v when_expression v klauzuli KDY, se vrací skalární hodnota 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  

Vyhledáný případový výraz

Pro použití případového výrazu pro provádění složitějších vyhodnocení použijte vyhledávaný případový výraz. Tato varianta vyhledávacího výrazu vám umožňuje vyhodnotit, zda se vstupní výraz nachází v určitém rozsahu hodnot. MDX vyhodnocuje klauzule WHEN v pořadí, v jakém se tyto klauzule objevují ve příkazu CASE.

V následujícím příkladu je míra Reseller Order Count vyhodnocena vůči specifikovanému Boolean_expression pro každou z několika klauzul WHEN (KDY). Výsledek se vrací na základě hodnoty ukazatele počtu objednávek prodejce za každý rok. Protože KDYŽ jsou klauzule vyhodnocovány v pořadí, v jakém se objevují, lze všem hodnotám větším než 6 snadno přiřadit hodnotu "VERY LARGE" bez nutnosti explicitně specifikovat každou hodnotu. Pro hodnoty počtu objednávek přeprodejce, které nejsou specifikovány v klauzuli KDY, se vrací skalární hodnota 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