Plsql-case-statement
提供:Dev Guides
PL/SQL-CASEステートメント
*IF* ステートメントと同様に、* CASEステートメント*は、実行するステートメントのシーケンスを1つ選択します。 ただし、シーケンスを選択するために、 *CASE* ステートメントは複数のブール式ではなくセレクターを使用します。 セレクターは式であり、その値はいくつかの選択肢の1つを選択するために使用されます。
構文
PL/SQLのcase文の構文は次のとおりです-
CASE selector
WHEN 'value1' THEN S1;
WHEN 'value2' THEN S2;
WHEN 'value3' THEN S3;
...
ELSE Sn; -- default case
END CASE;
流れ図
例
DECLARE
grade char(1) := 'A';
BEGIN
CASE grade
when 'A' then dbms_output.put_line('Excellent');
when 'B' then dbms_output.put_line('Very good');
when 'C' then dbms_output.put_line('Well done');
when 'D' then dbms_output.put_line('You passed');
when 'F' then dbms_output.put_line('Better try again');
else dbms_output.put_line('No such grade');
END CASE;
END;
/
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
Excellent
PL/SQL procedure successfully completed.