Die allgemeine CASE-Anweisung (searched_case_statement) ist ein Syntaxelement, das in einer Routine zur Definition einer Datenbankprozedur (siehe CREATE DBPROC[EDURE]-Anweisung), einer Datenbankfunktion (siehe CREATE FUNCTION-Anweisung) oder eines Triggers (siehe CREATE TRIGGER-Anweisung) verwendet werden kann.
Syntax
<searched_case_statement>
::=
CASE
<searched_case_when_clause>...
[<case_else_clause>]
END [CASE]
<searched_case_when_clause>
::=
WHEN <search_condition> THEN
<statement>;
<case_else_clause> ::= ELSE <statement>;
Erläuterung
Eine CASE-Anweisung case_statement erlaubt die bedingte Anweisungsausführung abhängig von Suchbedingungen oder der Gleichheit von Operanden.
Im Fall einer allgemeinen CASE-Anweisung searched_case_statement wird die erste erfüllte Suchbedingung bestimmt, die zugehörige Anweisung ausgeführt und die CASE-Anweisung beendet.
CASE
WHEN digit = 0 THEN toCHAR = 'zero';
WHEN digit = 1 THEN toCHAR = 'one';
WHEN digit = 2 THEN toCHAR = 'two';
WHEN digit = 3 THEN toCHAR = 'three';
WHEN digit = 4 THEN toCHAR = 'four';
WHEN digit = 5 THEN toCHAR = 'five';
WHEN digit = 6 THEN toCHAR = 'six';
WHEN digit = 7 THEN toCHAR = 'seven';
WHEN digit = 8 THEN toCHAR = 'eight';
WHEN digit = 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: