はじめに
PL/SQL練習記録、備忘録として記載。
Oracle12cを使用しています。
CASE文
IF文同様、条件制御(条件によって処理を分ける)といわれるもの。
CASE文には、CASE文と検索CASE文の2種類があります。
まずCASE文。これは基準の値をもとに「=」での比較を行う場合に使用します。
CASEの後に、選択子式(基準となる条件)を指定します。
また、IF文と違ってELSEは必須となります。
DECLARE
test NUMBER := 10; -- testに10を設定
BEGIN
CASE test -- testの値に対してそれぞれの条件(WHEN以下)と比較していく
WHEN 10 THEN
DBMS_OUTPUT.PUT_LINE('値は10');
WHEN 20 THEN
DBMS_OUTPUT.PUT_LINE('値は20');
ELSE -- 必須
DBMS_OUTPUT.PUT_LINE('値はそれ以外');
END CASE;
END;
値は10
検索CASE文
上記のCASE文では選択子式を指定していましたが、検索CASE文では指定しません。
そのため、WHENに条件式を毎回指定する必要があります。
DECLARE
test NUMBER := 5; -- testに5を設定
BEGIN
CASE
WHEN test < 10 THEN --条件式を指定
DBMS_OUTPUT.PUT_LINE('値は10より小さい');
WHEN test < 20 THEN --条件式を指定
DBMS_OUTPUT.PUT_LINE('値は20より小さい');
ELSE -- 必須
DBMS_OUTPUT.PUT_LINE('値はそれ以外');
END CASE;
END;
値は10より小さい
おわり
CASE文はIF文よりもシンプルに書けるというメリットがありますが
検索CASE文では条件を毎回指定する必要があるためIF文と比べるとあまり大差ないようです。
またIF文、CASE文どちらも複数条件指定ができます。(ANDやORを使用)
こちらに関してはまたどこかで記載しようと思います。
ご覧いただきありがとうございました。
記載内容に間違いがありましたらご教示お願いいたします。
参考文献
プロとしてのOracle PL/SQL入門
![]() |
プロとしてのOracle PL/SQL入門 【第3版】(Oracle 12c、11g、10g対応)【電子書籍】[ アシスト教育部 ] 価格:1,320円 |
