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
例外が呼び出されます。
関連トピック
参照:
|