## Allgemeine CASE-Anweisung (searched_case_statement)

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:

Einfache CASE-Anweisung (simple_case_statement)