CASE-Funktion

CASE ist eine komplexe Funktion, für die es zwei Formen gibt: die einfache WHEN-Form und die WHEN-Suchform. In beiden Formen gibt CASE ein Ergebnis zurück, dessen Wert den Pfad der nachfolgenden Verarbeitung steuert.

SYNTAX

In der einfachen WHEN-Form wird Quellenwert mit jedem Testwert verglichen, bis eine Übereinstimmung gefunden wird. Das Ergebnis der CASE-Funktion ist der Wert des entsprechenden Ergebniswerts. Der Datentyp von Quellenwert muss deshalb mit dem Datentyp der einzelnen Testwerte vergleichbar sein.

In der CASE-Funktion muss mindestens eine WHEN-Klausel angegeben werden. Der ELSE-Ausdruck ist optional. Der ELSE-Standardausdruck ist NULL. Ein CASE-Ausdruck wird durch END begrenzt. Bei den Testwerten muss es sich nicht um Literalwerte handeln.

Die WHEN-Suchform ist der einfachen Form ähnlich, sie ist jedoch flexibler, da mehrere verschiedene Werte gestestet werden können.

Im folgenden Beispiel ist eine CASE-Funktion mit einer einfachen WHEN-Klausel dargestellt. In diesem Beispiel kann CASE nur durch eine Variable bestimmt werden, die nach dem Schlüsselwort CASE angegeben wird.
 DECLARE CurrentMonth CHAR;
  DECLARE MonthText CHAR;
  SET CurrentMonth = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 6 FOR 2);

  SET MonthText = 
   CASE CurrentMonth
      WHEN '01' THEN 'January' 
      WHEN '02' THEN 'February'
      WHEN '03' THEN 'March' 
      WHEN '04' THEN 'April' 
      WHEN '05' THEN 'May' 
      WHEN '06' THEN 'June' 
      ELSE 'Second half of year' 
   END;
Im folgenden Beispiel ist eine CASE-Funktion mit einer WHEN-Suchklausel dargestellt. Dieses Beispiel wird ebenfalls durch eine Variable bestimmt, 'CurrentMonth':
 DECLARE CurrentMonth CHAR;
  DECLARE MonthText CHAR;
  SET CurrentMonth = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 6 FOR 2);

  SET MonthText = 
   CASE  
      WHEN Month = '01' THEN 'January' 
      WHEN Month = '02' THEN 'February'
      WHEN Month = '03' THEN 'March' 
      WHEN Month = '04' THEN 'April' 
      WHEN Month = '05' THEN 'May' 
      WHEN Month = '06' THEN 'June' 
      ELSE 'Second half of year' 
   END;
In einer WHEN-Klausel mit Suchbedingung können in den WHEN-Klauseln unterschiedliche Variablen verwendet werden, um das Ergebnis zu ermitteln. Dies wird im folgenden Beispiel für eine WHEN-Klausel mit Suchbedingung veranschaulicht:
 DECLARE CurrentMonth CHAR;
  DECLARE CurrentYear CHAR;
  DECLARE MonthText CHAR;
  SET CurrentMonth = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 6 FOR 2);
  SET CurrentYear = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 1 FOR 4);

  SET MonthText = 
    CASE 
      WHEN CurrentMonth = '01' THEN 'January'
      WHEN CurrentMonth = '02' THEN 'February'
      WHEN CurrentMonth = '03' THEN 'March'
      WHEN CurrentYear = '2000' THEN 'A month in the Year 2000'
      WHEN CurrentYear = '2001' THEN 'A month in the Year 2001'
      ELSE 'Not first three months of any year or a month in the Year 2000 or 2001'
    END;
Zugehörige Konzepte
Übersicht zu ESQL
Zugehörige Tasks
ESQL erstellen
Zugehörige Verweise
Syntaxdiagramme: Verfügbare Typen
Komplexe ESQL-Funktionen
MOVE-Anweisung
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:29:30

ak05600_