CASE-Anweisung

Die CASE-Anweisung verwendet in WHEN-Klauseln definierte Regeln für die Auswahl einer Gruppe von auszuführenden Anweisungen.

Für die CASE-Anweisung gibt es zwei Formen: die einfache Form und die Suche-Form.

SYNTAX

Suche-Form der CASE-Anweisung     .-<---------------------------------.        V |    >>-CASE----WHEN--Ausdruck--THEN--Anweisungen-+------------------> >--+-------------------+--END--CASE----------------------------><    '-ELSE--Anweisungen-'    

Im einfachen Format wird der Hauptausdruck zuerst ausgewertet. Alle Ausdrücke in der WHEN-Klausel werden ausgewertet, bis das Ergebnis dem Ergebnis des Hauptausdrucks entspricht. Anschließend werden die Anweisungen in der WHEN-Klausel ausgeführt. Wenn keine Übereinstimmung gefunden werden kann und die optionale ELSE-Klausel vorhanden ist, werden die Anweisungen in der ELSE-Klausel ausgeführt. Bei den Testwerten muss es sich nicht um Literale handeln. Die einzige Voraussetzung ist, dass der Hauptausdruck und die Ausdrücke in der WHEN-Klausel Werte ergeben, deren Typen einen Vergleich ermöglichen.

In der Suche-Form wird jeder Ausdruck in der WHEN-Klausel ausgewertet, bis ein Ausdruck den Wert 'TRUE' ergibt. Anschließend werden die Anweisungen in der WHEN-Klausel ausgeführt. Wenn keiner der Ausdrücke den Wert 'TRUE' ergibt und die optionale ELSE-Klausel vorhanden ist, werden die Anweisungen in der ELSE-Klausel ausgeführt. Es muss keine Ähnlichkeit zwischen den Ausdrücken in den CASE-Klauseln bestehen. Die einzige Voraussetzung, die erfüllt werden muss, ist, dass alle Werte einen Booleschen Wert ergeben müssen.

In der ESQL-Sprache gibt es sowohl eine CASE-Anweisung als auch eine CASE-Funktion (weitere Informationen zur CASE-Funktion finden Sie im Abschnitt Funktion CASE). Die CASE-Anweisung wählt eine auszuführende Anweisung aus einer Gruppe von Anweisungen aus. Die CASE-Funktion wählt einen auszuwertenden Ausdruck aus einer Gruppe von Ausdrücken aus, und gibt als Wert den Rückgabewert des ausgewählten Ausdrucks zurück.

Beispiele

Einfache CASE-Anweisung:
CASE size
  WHEN minimum + 0 THEN
    SET description = 'small';
  WHEN minimum + 1 THEN
    SET description = 'medium';        
  WHEN minimum + 2 THEN
    SET description = 'large';
    CALL handleLargeObject();
         ELSE
    SET description = 'unknown';
    CALL handleError();
END CASE;
Suche-Form der CASE-Anweisung:
CASE
	WHEN i <> 0 THEN
    CALL handleI(i);
  WHEN j > 1 THEN
    CALL handleIZeroAndPositiveJ(j);
         ELSE
    CALL handleAllOtherCases(j);
END CASE;
Zugehörige Konzepte
Übersicht zu ESQL
Zugehörige Tasks
ESQL erstellen
Zugehörige Verweise
Syntaxdiagramme: verfügbare Typen
ESQL-Anweisungen
Funktion CASE
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2005 Letzte Aktualisierung: Nov 17, 2005
ak04930_