次の例で、E、E1 などは式を表します。 SELECT ステートメントに制御が到達すると、 式 E が計算され、その値が保管されます。 次に、WHEN ステートメント内のそれぞれの式が 順に (書かれている順に) 計算され、その値が E の値と比較されます。
E の値と等しい値が見付かると、 対応する THEN ステートメントの後に指定されている処置が行われます。 先の WHEN ステートメント式は計算されません。
WHEN ステートメントのどの式も、SELECT ステートメントの式と等しくない場合は、 OTHERWISE ステートメントの後に指定されている処置が実行されます。
select (E);
when (E1,E2,E3) action-1;
when (E4,E5) action-2;
otherwise action-n;
end;
Nl: next statement;
exp1 を省略した場合の例を以下に示します。
select;
when (A>B) call Bigger;
when (A=B) call Same;
otherwise call Smaller;
end;
SELECT グループ内に WHEN ステートメントが 1 つもない場合は、 OTHERWISE ステートメント内の処置が無条件に実行されます。 OTHERWISE ステートメントを省略した場合に、 SELECT グループが実行され、WHEN ステートメントの どのユニットも選択されなかったときは、ERROR 条件が起こります。