PL/SQL練習記録(条件制御CASE文)
はじめに
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円 |
Amazonはこちら
Author And Source
この問題について(PL/SQL練習記録(条件制御CASE文)), 我々は、より多くの情報をここで見つけました https://qiita.com/46bi_ru/items/63f5b55d48f7f72bd4a2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .