WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

CASE 関数

CASE は、単純形式と検索形式という 2 つの形式を持つ複合関数です。 どちらの形式の CASE も結果を戻します。その結果は、後続の処理のパスを制御する値です。

構文

構文図を読む構文図をスキップする
>>-CASE--+-| simple-when-clause |---+--------------------------->
         '-| searched-when-clause |-'   

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

simple-when-clause

                 .------------------------------------------.   
                 V                                          |   
|--source_value----WHEN -test_value--THEN--+-result_value-+-+---|
                                           '-NULL---------'     

searched-when-clause

   .------------------------------------------------.   
   V                                                |   
|----WHEN -search_condition--THEN--+-result_value-+-+-----------|
                                   '-NULL---------'     

単純形式の場合、source_value に一致するものが見つかるまで、各 test_value との比較がなされます。 CASE 関数の結果は、対応する result_value の値です。 したがって、source_value のデータ・タイプは、各 test_value のデータ・タイプと比較可能なものでなければなりません。

CASE 関数には、少なくとも 1 つの WHEN 文節が必要です。 ELSE 式はオプションです。 デフォルトの ELSE 式は NULL です。 CASE 式は END で区切ります。 テスト値は、リテラル値でなくてもかまいません。

検索 WHEN 文節も同様ですが、異なる複数の値をテストすることができる点で柔軟性の高い形式です。

次の例は、単純 WHEN 文節による CASE 関数の使用例です。 この例では、CASE は、CASE キーワードの横で指定される 1 つの変数によってのみ判別できます。
 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;
次の例は、検索 WHEN 文節による CASE 関数の使用例です。 この例も、1 つの変数 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;
検索 when 文節では、WHEN 文節でさまざまな変数を使用して結果を判別することができます。 これは、以下の検索 when 文節の例で示されています。
 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;
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

        
        最終更新:
        
        最終更新: 2015-02-28 17:47:28


参照トピック参照トピック | バージョン 8.0.0.5 | ak05600_