Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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