Podmíněné výrazy slouží k tvorbě výrazů, které převádí hodnoty.
Podmíněné výrazy popsané v tomto oddílu jsou stavebními kameny pro tvorbu výrazů, které převádějí hodnotu z jedné formy do druhé.
Dodržujte tato pravidla:
CASE
má AND
přednost před OR
.Výraz | Příklad | Popis | Syntaxe |
---|---|---|---|
CASE (If) |
|
Vyhodnotí všechny podmínky Pokud se nezjistí shoda s žádnou podmínkou Poznámka: Viz Osvědčené postupy pro používání příkazů CASE v analýzách a vizualizacích. |
|
CASE (přepínač) |
|
Uváděno také jako Pokud se nezjistí shoda s žádným výrazem Pokud první výraz odpovídá výrazu v několika klauzulích |
|
IfCase > ELSE |
- |
- |
|
IfCase > IFNULL |
- |
- |
|
IfCase > NULLIF |
- |
- |
|
IfCase > WHEN |
- |
- |
|
IfCase > CASE |
- |
- |
|
SwitchCase > ELSE |
- |
- |
|
SwitchCase > IFNULL |
- |
- |
|
SwitchCase > NULLIF |
- |
- |
|
SwitchCase > WHEN |
- |
- |
|
Při použití příkazů CASE v sestavách a sešitech vezměte v úvahu sloupce sestavy a pořadí agregace, protože ty ovlivňují způsob výpočtu výrazů a mezisoučtů.
Obecně platí, že při použití výrazů CASE je nutné se ujistit, že do sestavy jsou zahrnuty všechny sloupce použité ve výrazu.
Pokud má být podmínka vyhodnocena před vypočítáním agregace (například pokud se v sestavě nezobrazuje filtrovaný sloupec), použijte funkci FILTER.
Příklad
Tento příklad používá data pro značku, typ produktu a výnosy.
.png''
Chcete-li použít podmínku pro nastavení výnosů z produktu Camera na hodnotu 0, vytvořte následující podmíněný výraz: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END
.
Když je parametr Product_Type vyloučen ze sestavy, nejsou dostupná data k vyhodnocení výrazu, protože ten obsahuje parametr Product_Type, a výsledky budou následující:
.png''
Přidáním PRODUCT_TYPE do sestavy a nastavením agregace sestavy na SUM se výsledky agregují po výpočtu hodnot základní úrovně takto:
.png''
Alternativou k použití CASE je použít výraz filtru: FILTER (Revenue using Product_Type != ‘Camera’). Výraz se vypočítá nezávisle na sloupcích sestavy a po výpočtu se použijí agregace:
.png''