CASE-Anweisung

Die CASE-Anweisung (Bedingungsanweisung) verwendet in WHEN-Klauseln definierte Regeln zur Auswahl eines zu verarbeitenden Anweisungsblocks.

Es gibt zwei Formen der CASE-Anweisung: die einfache Form und die Suchform.

SYNTAX

In der einfachen Form wird zuerst der Hauptausdruck ausgewertet. Alle WHEN-Klauselausdrücke werden der Reihe nach ausgewertet, bis das Ergebnis mit dem Ergebnis des Hauptausdrucks übereinstimmt. Danach werden die Anweisungen dieser WHEN-Klausel ausgeführt. Falls keine Übereinstimmung gefunden wird und die optionale ELSE-Klausel vorhanden ist, werden stattdessen die Anweisungen der ELSE-Klausel ausgeführt. Die Testwerte müssen keine Literale sein. Die einzige Voraussetzung ist, dass der Hauptausdruck und die WHEN-Klauselausdrücke Typen ergeben, die verglichen werden können.

In der Suchform werden alle WHEN-Klauselausdrücke der Reihe nach ausgewertet, bis ein Ausdruck TRUE ergibt. Danach werden die Anweisungen dieser WHEN-Klausel ausgeführt. Falls keiner der Ausdrücke TRUE ergibt und die optionale ELSE-Klausel vorhanden ist, werden die Anweisungen der ELSE-Klausel ausgeführt. Es muss keine Ähnlichkeit zwischen den Ausdrücken in den einzelnen CASE-Klauseln vorhanden sein. Die einzige Voraussetzung ist, dass sie alle einen Booleschen Wert ergeben.

In der ESQL-Sprache gibt es sowohl eine CASE-Anweisung als auch eine CASE-Funktion (weitere Informationen zur CASE-Funktion finden Sie im Abschnitt CASE-Funktion). Die CASE-Anweisung wählt aus einer Gruppe von Anweisungen eine auszuführende Anweisung aus. Die CASE-Funktion wählt aus einer Gruppe von Ausdrücken einen auszuwertenden Ausdruck aus, und gibt als Wert den Rückgabewert des gewä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;
CASE-Suchanweisung:
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
CASE-Funktion
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ak04930_