Funkce el. výkaznictví CASE
Funkce CASE
vyhodnotí hodnotu zadaného výrazu podle zadaných alternativních možností a vrátí výsledek první možnosti, která se rovná hodnotě zadaného výrazu. V opačném případě vrátí volitelný výchozí výsledek, pokud je výchozí výsledek zadán jako poslední argument volané funkce, jemuž nepředchází nějaká možnost. Vrácená hodnota může být libovolného podporovaného datového typu.
Syntaxe
CASE (expression, option 1, result 1[, option 2, result 2, …, option N, result N, default result])
Argumenty
expression
: primitivní datový typ (logická, číselná nebo textová hodnota)
Platný výraz, který vrací hodnotu primitivního datového typu.
option 1
: primitivní datový typ (logická, číselná nebo textová hodnota)
Platný výraz, který vrací hodnotu stejného primitivního datového typu jako argument expression
volané funkce. Tento argument je povinný.
result 1
: kterýkoli z podporovaných datových typů
Vrácený výsledek, který odpovídá předcházející možnosti. Tento argument je povinný.
option N
: primitivní datový typ (logická, číselná nebo textová hodnota)
Platný výraz, který vrací hodnotu stejného primitivního datového typu jako argument expression
volané funkce. Tento argument je volitelný.
result N
: kterýkoli z podporovaných datových typů
Vrácený výsledek, který odpovídá předcházející možnosti. Tento argument je volitelný.
default result
: kterýkoli z podporovaných datových typů
Výsledek, který by měl být vrácen, pokud neexistuje shoda. Tento argument je volitelný.
Vrácené hodnoty
Kterýkoli z podporovaných datových typů
Výsledná hodnota některého z podporovaných datových typů.
Poznámky k použití
Výjimka je vyvolána za běhu, pokud neexistuje shoda a volitelný výchozí výsledek není definován.
Všechny výsledky musí být zadány pomocí stejného datového typu. Výjimka je vyvolána v době návrhu, pokud se datové typy konfigurovaných výsledků neshodují.
Jsou-li první výsledná hodnota a n-tá hodnota výsledku hodnoty datového typu kontejner (záznam) nebo seznam záznamů, výsledek obsahuje pouze pole, která existují v obou hodnotách.
Příklad
CASE( DATETIMEFORMAT( NOW(), "MM"), "10", "WINTER", "11", "WINTER", "12", "WINTER", "")
vrátí řetězec "WINTER" (zima), pokud je aktuální datum relace aplikace mezi říjnem a prosincem. Jinak bude vrácen prázdný řetězec.