De ER-functie CASE
De functie CASE
evalueert de waarde van de opgegeven expressie ten opzichte van de opgegeven alternatieve opties en retourneert het resultaat van de eerste optie die gelijk is aan de waarde van de opgegeven expressie. Anders wordt het optionele standaardresultaat geretourneerd, als een standaardresultaat is opgegeven als het laatste argument van de aangeroepen functie die niet wordt voorafgegaan door een optie. De geretourneerde waarde kan een waarde zijn van een van de ondersteunde gegevenstypen.
Syntaxis
CASE (expression, option 1, result 1[, option 2, result 2, …, option N, result N, default result])
Argumenten
expression
: Primitief gegevenstype (Booleaans, numeriek of tekst)
Een geldige expressie die een waarde van het primitieve gegevenstype retourneert.
option 1
: Primitief gegevenstype (Booleaans, numeriek of tekst)
Een geldige expressie die een waarde retourneert van hetzelfde primitieve gegevenstype als het argument expression
van de aangeroepen functie. Dit argument is verplicht.
result 1
: Een van de ondersteunde gegevenstypen
Het geretourneerde resultaat dat overeenkomt met de voorgaande optie. Dit argument is verplicht.
option N
: Primitief gegevenstype (Booleaans, numeriek of tekst)
Een geldige expressie die een waarde retourneert van hetzelfde primitieve gegevenstype als het argument expression
van de aangeroepen functie. Dit argument is optioneel.
result N
: Een van de ondersteunde gegevenstypen
Het geretourneerde resultaat dat overeenkomt met de voorgaande optie. Dit argument is optioneel.
default result
: Een van de ondersteunde gegevenstypen
Het resultaat dat moet worden geretourneerd als er geen overeenkomst is. Dit argument is optioneel.
Retourwaarden
Een van de ondersteunde gegevenstypen
De resulterende waarde van een van de ondersteunde gegevenstypen.
Gebruiksaanwijzingen
Tijdens runtime wordt een uitzondering gegenereerd als er geen overeenkomst is en er geen optioneel standaardresultaat is gedefinieerd.
Alle resultaten moeten worden opgegeven met hetzelfde gegevenstype. Er wordt een uitzondering gegenereerd tijdens het ontwerpen als de gegevenstypen van de geconfigureerde resultaten niet overeenkomen.
Als de eerste resultaatwaarde en de Ne resultaatwaarde waarden van het gegevenstype Container (record) of Recordlijst zijn, bevat het resultaat alleen de velden die in beide waarden bestaan.
Voorbeeld
CASE( DATETIMEFORMAT( NOW(), "MM"), "10", "WINTER", "11", "WINTER", "12", "WINTER", "")
retourneert de tekenreeks WINTER wanneer de datum van de huidige toepassingssessie tussen oktober en december ligt. Anders wordt een lege tekenreeks geretourneerd.