CASE ステートメント

CASE ステートメントは WHEN 文節で定義された規則を使用して、処理するステートメントのブロックを選択します。

CASE ステートメントには単純形式と検索形式の 2 種類の形式があります。

構文

単純形式の場合、メインの式がまず評価されます。結果がメイン式の結果と等しくなるまで、各 WHEN 文節式が次々に評価されます。次いで、その WHEN 文節のステートメントが実行されます。一致が検出されず、かつオプションの ELSE 節がある場合は、ELSE 節のステートメントが代わりに実行されます。テスト値は、リテラルでなくてもかまいません。唯一の要件は、メイン式と WHEN 文節式が比較可能なタイプへと評価されることです。

検索形式では、各 WHEN 文節式が、TRUE に評価されるまで、次々に評価されます。次いで、その WHEN 文節のステートメントが実行されます。どの式も TRUE に評価されず、かつオプションの ELSE 節がある場合は、ELSE 節のステートメントが代わりに実行されます。各 CASE 文節の式どうしが類似している必要はありません。唯一の要件は、それらすべてがブール値に評価されることです。

ESQL 言語には CASE ステートメントと CASE 関数の両方があります (CASE 関数の詳細については、CASE 関数を参照してください)。CASE ステートメントは実行するステートメントのセットを 1 つ選びます。CASE 関数は評価する式のセットを 1 つ選び、選んだ式の戻り値をその値として戻します。

単純 CASE ステートメント:
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 ステートメント:
CASE
WHEN i <> 0 THEN
    CALL handleI(i);
  WHEN j > 1 THEN
    CALL handleIZeroAndPositiveJ(j);
  ELSE
    CALL handleAllOtherCases(j);
END CASE;
関連概念
ESQL の概要
関連タスク
ESQL の開発
関連資料
構文図: 使用可能なタイプ
ESQL のステートメント
CASE 関数
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ak04930_