PL/SQL練習記録（条件制御CASE文）

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

##CASE文
IF文同様、条件制御（条件によって処理を分ける）といわれるもの。
CASE文には、CASE文と検索CASE文の２種類があります。
まず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入門 

<table cellpadding="0" cellspacing="0" border="0" style=" border:1px solid #ccc; width:300px;"><tr style="border-style:none;"><td style="vertical-align:top; border-style:none; padding:10px; width:;"><a href="https://rpx.a8.net/svt/ejp?a8mat=3BQT58+6IKTWA+2HOM+BWGDT&rakuten=y&a8ejpredirect=https%3A%2F%2Fhb.afl.rakuten.co.jp%2Fhgc%2Fg00reb44.2bo11755.g00reb44.2bo12ad3%2Fa20112511629_3BQT58_6IKTWA_2HOM_BWGDT%3Fpc%3Dhttps%253A%252F%252Fitem.rakuten.co.jp%252Frakutenkobo-ebooks%252F58b5a0720c5d310d85e58fb4b2194cfd%252F%26m%3Dhttp%253A%252F%252Fm.rakuten.co.jp%252Frakutenkobo-ebooks%252Fi%252F13906097%252F" rel="nofollow"><img border="0" alt="" src="https://thumbnail.image.rakuten.co.jp/@0_mall/rakutenkobo-ebooks/cabinet/1325/2000002631325.jpg?_ex=64x64" /></a></td><td style="font-size:12px; vertical-align:middle; border-style:none; padding:10px;"><p style="padding:0; margin:0;"><a href="https://rpx.a8.net/svt/ejp?a8mat=3BQT58+6IKTWA+2HOM+BWGDT&rakuten=y&a8ejpredirect=https%3A%2F%2Fhb.afl.rakuten.co.jp%2Fhgc%2Fg00reb44.2bo11755.g00reb44.2bo12ad3%2Fa20112511629_3BQT58_6IKTWA_2HOM_BWGDT%3Fpc%3Dhttps%253A%252F%252Fitem.rakuten.co.jp%252Frakutenkobo-ebooks%252F58b5a0720c5d310d85e58fb4b2194cfd%252F%26m%3Dhttp%253A%252F%252Fm.rakuten.co.jp%252Frakutenkobo-ebooks%252Fi%252F13906097%252F" rel="nofollow">プロとしてのOracle PL/SQL入門 【第3版】（Oracle 12c、11g、10g対応）【電子書籍】[ アシスト教育部 ]</a></p><p style="color:#666; margin-top:5px line-height:1.5;">価格:<span style="font-size:14px; color:#C00; font-weight:bold;">1,320円</span><br/><span style="font-size:10px; font-weight:normal;">(2020/11/25 13:10時点)</span><br/><span style="font-weight:bold;">感想(1件)</span></p></td></tr></table>
Amazonは<a href="https://px.a8.net/svt/ejp?a8mat=3BQT58+6GSJ2Y+249K+BWGDT&a8ejpredirect=https%3A%2F%2Fwww.amazon.co.jp%2Fs%3Fk%3DPL%252FSQL%26__mk_ja_JP%3D%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A%26ref%3Dnb_sb_noss_2%26tag%3Da8-affi-308824-22" rel="nofollow">こちら</a>
<img border="0" width="1" height="1" src="https://www11.a8.net/0.gif?a8mat=3BQT58+6GSJ2Y+249K+BWGDT" alt="">