Oracle PL/SQL 条件分岐 IF文

スポンサーリンク
スポンサーリンク

条件分岐 IF文

SQLでは記述できないIF文をPL/SQLなら記述することができます。

IF文の構文

IF

普通のIF文です。条件式を満たす場合に処理を行います。
「END IF」のあとのセミコロンを忘れやすいの注意してください\(^o^)/

IF <条件式> THEN
    <処理>
END IF;

IF-ELSE

条件式を満たさない場合にELSEで指定している処理を行います。

IF <条件式> THEN
    <処理>
ELSE
    <処理>
END IF;

IF-ELSIF

条件式ごとに処理を分岐して処理を行います。
ちなみに「ELSIF」は、処理分岐分記述することができます。「ELSE」は省略可能です。

IF <条件式> THEN
    <処理>
ELSIF <条件式> THEN
    <処理>
[ELSIF <条件式> THEN <処理>]
[ELSE <処理分>]
END IF;

よく間違いやすいのがELSIFです。紛らわしいですよね。。。「ELSEIF」ではないので気をつけましょう。
そしてごめんなさい自分も間違えて記事投稿してました。(´・ω・`)

IF文の実行例

IF実行例

DECLARE
    animal VARCHAR2(10) := 'いるか';
BEGIN
    IF animal = 'いるか' THEN
        DBMS_OUTPUT.PUT_LINE( 'animal:' || animal );
    END IF;
END;
/
SQL> DECLARE
  2      animal VARCHAR2(10) := 'いるか';
  3  BEGIN
  4      IF animal = 'いるか' THEN
  5          DBMS_OUTPUT.PUT_LINE( 'animal:' || animal );
  6      END IF;
  7  END;
  8  /
animal:いるか

PL/SQLプロシージャが正常に完了しました。

IF-ELSE実行例

DECLARE
    animal VARCHAR2(10) := 'いるか';
    BEGIN
    IF animal = 'うさぎ' THEN
        DBMS_OUTPUT.PUT_LINE( '君はうさぎです' );
    ELSE
        DBMS_OUTPUT.PUT_LINE( '君はうさぎではないです' );
    END IF;
END;
/
SQL> DECLARE
  2      animal VARCHAR2(10) := 'いるか';
  3      BEGIN
  4      IF animal = 'うさぎ' THEN
  5          DBMS_OUTPUT.PUT_LINE( '君はうさぎです' );
  6      ELSE
  7          DBMS_OUTPUT.PUT_LINE( '君はうさぎではないです' );
  8      END IF;
  9  END;
 10  /
君はうさぎではないです

PL/SQLプロシージャが正常に完了しました。

IF-ELSIF実行例

DECLARE
    animal VARCHAR2(20) := 'ぺんぎん';
    BEGIN
        IF animal = 'いるか' THEN
            DBMS_OUTPUT.PUT_LINE( '君はいるかです' );
        ELSIF animal = 'うさぎ' THEN
            DBMS_OUTPUT.PUT_LINE( '君はうさぎです' );
        ELSE
            DBMS_OUTPUT.PUT_LINE( '君は' || animal ||'です' );
    END IF;
END;
/
SQL> DECLARE
  2      animal VARCHAR2(20) := 'ぺんぎん';
  3      BEGIN
  4          IF animal = 'いるか' THEN
  5              DBMS_OUTPUT.PUT_LINE( '君はいるかです' );
  6          ELSIF animal = 'うさぎ' THEN
  7              DBMS_OUTPUT.PUT_LINE( '君はうさぎです' );
  8          ELSE
  9              DBMS_OUTPUT.PUT_LINE( '君は' || animal ||'です' );
 10      END IF;
 11  END;
 12  /
君はぺんぎんです

PL/SQLプロシージャが正常に完了しました。

コメント

タイトルとURLをコピーしました