この形式のCASE文は、WHEN句内の条件式の評価が真となると文のリストを実行します。最大限1つのWHEN句またはELSE句に関連した文を実行できます。
WHEN句は、CASE文内に指定されている順序で評価されます。評価のプロセスは次のとおりです。
- 最初のWHEN句が評価されます。
- WHEN句に指定されている条件式が真であれば、そのWHEN句の文が実行されます。
- ストアド プロシージャ内の次の文に制御権が移動します。
値式が真ではない場合、次のWHEN句が存在すればその句が評価されます。
- 後続のすべてのWHEN句は、ステップ1で説明した方法で評価されます。
- 評価するWHEN句がもうなくなった場合に、ELSE句が存在すればそれが新たな対象とされ、そのELSE句の文が実行されます。
ストアド プロシージャ内の次の文に制御権が移動します。
- ELSE句がない場合に、どのWHEN句内の条件式の評価も真とならなかったときは、
- 実行時例外(”Case not found for CASE statement”, SQLSTATE=’20000’, SQLCODE = 7601)が発生します。
- CASE文の実行が終了します。