PL/SQL練習記録(条件制御CASE文)


はじめに

PL/SQL練習記録、備忘録として記載。
Oracle12cを使用しています。

CASE文

IF文同様、条件制御(条件によって処理を分ける)といわれるもの。
CASE文には、CASE文と検索CASE文の2種類があります。
まずCASE文。これは基準の値をもとに「=」での比較を行う場合に使用します。
CASEの後に、選択子式(基準となる条件)を指定します。
また、IF文と違ってELSEは必須となります。

CASE文.
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に条件式を毎回指定する必要があります。

検索CASE文.
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円
(2020/11/25 13:10時点)
感想(1件)

Amazonはこちら