萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

PL/SQL 條件判斷語句完整語法:IF-THEN、IF-THEN-ELSE、IF-THEN-ELSIF

PL/SQL (Oracle) 三種核心條件結構語法與範例,適用存儲過程、觸發器、匿名區塊。

1. IF-THEN (單分支)

IF condition THEN
    -- 條件為真時執行
    statements;
END IF;

2. IF-THEN-ELSE (雙分支)

IF condition THEN
    statements_1;
ELSE
    statements_2;
END IF;

3. IF-THEN-ELSIF (多重分支)

IF condition_1 THEN
    statements_1;
ELSIF condition_2 THEN
    statements_2;
ELSIF condition_3 THEN
    statements_3;
ELSE
    statements_else;
END IF;

完整範例:薪資等級判斷

DECLARE
    v_sal  NUMBER := 8500;
    v_grade VARCHAR2(10);
BEGIN
    IF v_sal > 10000 THEN
        v_grade := '高級';
    ELSIF v_sal > 5000 THEN
        v_grade := '中級';
    ELSIF v_sal > 0 THEN
        v_grade := '初級';
    ELSE
        v_grade := '異常';
    END IF;
    
    DBMS_OUTPUT.PUT_LINE('薪資等級: ' || v_grade);
END;
/

關鍵注意事項

  • ELSIF 拼寫:不是 ELSEIF,也不是 ELSE IF
  • END IF 結尾:每個 IF 必須配對 END IF;
  • 條件順序:由嚴格到寬鬆,避免邏輯遮蔽
  • NULL 值:條件為 NULL 視為 FALSE,進入 ELSE 分支
  • 巢狀限制:理論無限制,建議 ≤ 3 層,超過改用 CASE

CASE 表達式替代方案 (SQL/PLSQL 通用)

-- 簡單 CASE
CASE v_sal
    WHEN 10000 THEN '高'
    WHEN 5000  THEN '中'
    ELSE '低'
END;

-- 搜尋 CASE (範圍判斷)
CASE 
    WHEN v_sal > 10000 THEN '高'
    WHEN v_sal > 5000  THEN '中'
    ELSE '低'
END;

CASE 可直接用於 SQL 查詢,IF 僅限 PL/SQL 程式區塊。

copyright © 萬盛學電腦網 all rights reserved