すべてのプロダクト
Search
ドキュメントセンター

PolarDB:IF-THEN-ELSIF-ELSE

最終更新日:May 30, 2024

IF-THEN-ELSIF-ELSEは、1つのステートメントで多くの選択肢をチェックする方法を提供します。 正式には、入れ子になったIF-THEN-ELSE-IF-THEN文と同等ですが、必要なEND IFは1つだけです。

IFブール式THEN
    ステートメント
[ELSIFブール式THEN]
    ステートメント
[ELSIFブール式THEN]
    ステートメント] ...]
[ELSE
    ステートメント]
  エンドIF; 

次の例では、IF-THEN-ELSIF-ELSEステートメントを使用して、25,000米ドルの報酬範囲で従業員の数をカウントします。

DECLARE
    v_empno         emp.empno%TYPE;
    v_comp番号 (8,2);
    v_lt_25K SMALLINT := 0;
    v_25K_50K SMALLINT := 0;
    v_50K_75K SMALLINT := 0;
    v_75K_100K SMALLINT := 0;
    v_ge_100K SMALLINT := 0;
    CURSOR emp_cursor IS SELECT empno, (sal + NVL(comm,0)) * 24 FROM emp;
開始
    OPEN emp_cursor;
    LOOP
        FETCH emp_cursorにインv_empno、v_comp;
        emp_cursor % NOTFOUND;
        IF v_comp < 25000 THEN
            v_lt_25K := v_lt_25K + 1;
        ELSIF v_comp < 50000 THEN
            v_25K_50K := v_25K_50K + 1;
        ELSIF v_comp < 75000 THEN
            v_50K_75K := v_50K_75K + 1;
        ELSIF v_comp < 100000 THEN
            v_75K_100K := v_75K_100K + 1;
        ELSE
            v_ge_100K := v_ge_100K + 1;
        END IF;
    END LOOP;
    閉じるemp_cursor;
    DBMS_OUTPUT.PUT_LINE (「年次調査による従業員の数」);
    DBMS_OUTPUT.PUT_LINE('25,000未満:' | | v_lt_25K);
    DBMS_OUTPUT.PUT_LINE('25,000 - 49,9999 : '| | v_25K_50K);
    DBMS_OUTPUT.PUT_LINE('50,000 - 74,9999 : '| | v_50K_75K);
    DBMS_OUTPUT.PUT_LINE('75,000 - 99,9999 : '| | v_75K_100K);
    DBMS_OUTPUT.PUT_LINE('100,000以上: '| | v_ge_100K);
エンド; 

このプログラムから次の出力が生成されます。

年間報酬による従業員数
25,000未満: 2
25,000 - 49,9999 : 5
50,000 - 74,9999 : 6
75,000 - 99,9999 : 0
100,000以上: 1