1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-10-04

はじめに

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はこちら
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?