
PL/SQLでの条件分岐の仕方をご紹介します。
普通の条件分岐
構文
1 2 3 |
IF 条件 THEN 処理; END IF; |
例文
1 2 3 4 5 6 7 8 |
DECLARE num NUMBER := 2; BEGIN IF num = 2 THEN DBMS_OUTPUT.PUT_LINE('2に一致しています。'); END IF; END; |
ELSEを使う。
構文
1 2 3 4 5 |
IF 条件 THEN 処理; ELSE 処理2; END IF; |
例文
1 2 3 4 5 6 7 8 9 |
DECLARE num NUMBER := 2; BEGIN IF num = 1 THEN DBMS_OUTPUT.PUT_LINE('1に一致しています。'); ELSE DBMS_OUTPUT.PUT_LINE('1に一致していません。'); END IF; END; |
ELSEIFを使う。
構文
1 2 3 4 5 6 7 |
IF 条件 THEN 処理; ELSEIF 条件2 THEN 処理2; ELSE 処理3; END IF; |
例文
1 2 3 4 5 6 7 8 9 10 11 |
DECLARE num NUMBER := 2; BEGIN IF num = 1 THEN DBMS_OUTPUT.PUT_LINE('1に一致しています。'); ELSEIF num = 2 THEN DBMS_OUTPUT.PUT_LINE('2に一致しています。'); ELSE DBMS_OUTPUT.PUT_LINE('1にも1にもに一致していません。'); END IF; END; |
CASE文を使う。
構文
1 2 3 4 5 6 7 8 |
CASE 式 WHEN 値1 THEN 値1の場合の処理; WHEN 値2 THEN 値2の場合の処理; ELSE その他の場合の処理; END CASE; |
CASE文では、ELSEを省略することができますが、もし条件に一致しない場合は、エラーになってしまいます。
もし、ELSEの場合に何もしたくない場合は、「NULL;」と記述しましょう。
例文
1 2 3 4 5 6 7 8 9 10 11 12 |
DECLARE num NUMBER := 2; BEGIN CASE num WHEN 1 THEN DBMS_OUTPUT.PUT_LINE('1に一致しています。'); WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('2に一致しています。'); ELSE NULL; --何もしない。 END CASE; END; |
この記事へのコメントはありません。