CASE文を使用すると、一連の条件を基に、対応する文を選択して実行できます。
単純なCASE文は、単一の式を評価して、可能性のある複数の値と比較します。
検索CASE文は、複数のブール式を評価して、値がTRUEである最初の式を選択します。
CASE文は、オプションごとにアクションが異なる場合に適しています。
構文
simple_case_statement ::=

searched_case_statement ::=

(statement ::=、boolean_expression ::=)
キーワードとパラメータの説明
case_operand
複数の選択肢から1つ選択するために値が使用される式。 式の値は、BLOB、BFILE、オブジェクト型、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の値は、BLOB、BFILE、オブジェクト型、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例外が呼び出されます。
関連トピック
|
参照:
|