WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

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

Syntaxdiagramm lesenSyntaxdiagramm überspringen
>>-CASE--+-| Einfache_WHEN-Klausel |----------+----------------->
         '-| WHEN-Klausel_mit_Suchbedingung |-'   

   .-ELSE NULL---------------.        
>--+-------------------------+--END----------------------------><
   '-ELSE --Ergebnisausdruck-'        

Einfache_WHEN-Klausel

                .-----------------------------------------.   
                V                                         |   
|--Quellenwert----WHEN --Testwert--THEN--+-Ergebniswert-+-+-----|
                                         '-NULL---------'     

WHEN-Suchklausel

   .----------------------------------------------.   
   V                                              |   
|----WHEN --Suchbedingung--THEN--+-Ergebniswert-+-+-------------|
                                 '-NULL---------'     

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;
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:34


ReferenzthemaReferenzthema | Version 8.0.0.5 | ak05600_