ヘッダーをスキップ
Oracle Database PL/SQL言語リファレンス
11g リリース1(11.1)
E05670-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

CASE文

CASE文を使用すると、一連の条件を基に、対応する文を選択して実行できます。

単純なCASE文は、単一の式を評価して、可能性のある複数の値と比較します。

検索CASE文は、複数のブール式を評価して、値がTRUEである最初の式を選択します。

CASE文は、オプションごとにアクションが異なる場合に適しています。

構文

simple_case_statement ::=

simple_case_statement
simple_case_statement.gifの説明

searched_case_statement ::=

searched_case_statement
searched_case_statement.gifの説明

statement ::=boolean_expression ::=

キーワードとパラメータの説明

case_operand

複数の選択肢から1つ選択するために値が使用される式。 式の値は、BLOBBFILE、オブジェクト型、PL/SQLレコード、索引付き表、VARRAYまたはネストした表以外であれば、どのようなPL/SQL型でもかまいません。

WHEN { when_operand | boolean_expression } THEN statement

when_operandまたはboolean_expressionは順番に評価されます。 when_operandの値がcase_operandの値に等しいか、boolean_expressionの値がTRUEである場合は、そのwhen_operandまたはboolean_expressionに関連付けられているstatementが実行され、CASE文は終了します。 後続のwhen_operandまたはboolean_expressionは評価されません。

when_operandの値は、BLOBBFILE、オブジェクト型、PL/SQLレコード、索引付き表、VARRAYまたはネストした表以外であれば、どのようなPL/SQL型でもかまいません。


注意:

statementによってデータベースが変更され、非決定的なファンクションが起動される場合があります。 C言語のswitch文のようなfall-throughのメカニズムはありません。

ELSE statement [statement ]...

単純なCASE文では、case_operandと同じ値を持つwhen_operandが存在しない場合にのみ、statementが実行されます。

検索CASE文では、TRUEの値を持つboolean_expressionが存在しない場合にのみ、statementが実行されます。

ELSE句が省略され、一致がない(つまり、case_operandと同じ値を持つwhen_operandが存在しないか、またはTRUEの値を持つboolean_expressionが存在しない)場合は、システムによってCASE_NOT_FOUND例外が呼び出されます。

関連トピック


参照:

  • NULLIFファンクションについては、『Oracle Database SQL言語リファレンス』を参照してください。

  • COALESCEファンクションについては、『Oracle Database SQL言語リファレンス』を参照してください。