Die einfache CASE-Anweisung (simple_case_statement) ist ein Syntaxelement, das in einer Routine zur Definition einer Datenbankprozedur (siehe CREATE DBPROC[EDURE]-Anweisung), einer Datenbankfunktion (CREATE FUNCTION-Anweisung) oder eines Triggers (siehe CREATE TRIGGER-Anweisung) verwendet werden kann.
<simple_case_statement>
::= CASE <expression>
<simple_case_when_clause>...
[<case_else_clause>]
END [CASE]
<simple_case_when_clause>
::= WHEN <literal>[, ...]
THEN <statement>;
<case_else_clause> ::= ELSE <statement>;
Eine CASE-Anweisung case_statement erlaubt die bedingte Anweisungsausführung abhängig von Suchbedingungen oder der Gleichheit von Operanden.
Im Fall einer einfachen CASE-Anweisung simple_case_statement wird der Ausdruck mit den Literalen verglichen. Stimmt der Ausdruck mit einem Literal überein, wird die zugehörige Anweisung ausgeführt und die CASE-Anweisung beendet.
CASE digit
WHEN 0 THEN toCHAR = 'zero';
WHEN 1 THEN toCHAR = 'one';
WHEN 2 THEN toCHAR = 'two';
WHEN 3 THEN toCHAR = 'three';
WHEN 4 THEN toCHAR = 'four';
WHEN 5 THEN toCHAR = 'five';
WHEN 6 THEN toCHAR = 'six';
WHEN 7 THEN toCHAR = 'seven';
WHEN 8 THEN toCHAR = 'eight';
WHEN 9 THEN toCHAR = 'nine';
ELSE STOP(-29000, 'no digit');
END CASE
Ist in einer CASE-Anweisung kein passendes Literal bzw. keine erfüllte Suchbedingung vorhanden, wird die im ELSE-Zweig definierte Anweisung ausgeführt.
Ist auch kein ELSE-Zweig vorhanden, wird der Laufzeitfehler -28901 geliefert.
Siehe auch: