PL/SQL -條件判斷

你好啊,未來的 PL/SQL 大師!今天,我們將要深入探索 PL/SQL 中條件判斷的迷人世界。如果你是編程新手,別擔心——我會一步步引導你,就像這些年來我對無數學生所做的那樣。所以,來一杯咖啡(或者茶,如果你喜歡的話),我們開始吧!

PL/SQL - Conditions

PL/SQL 中的條件判斷是什麼?

想像你站在一個岔路口,需要決定走哪條路。編程中的條件判斷就是這樣的作用——它們幫助你的代碼進行決策。在 PL/SQL 中,條件判斷用於根據某些標準控制程序的流程。

條件判斷的重要性

條件判斷是編程邏輯的積木。它們讓你的代碼變得智能和靈活。沒有條件判斷,你的程序就像單軌火車一樣——只能朝一個方向前進。有了條件判斷,就像擁有複雜的鐵路系統,你的代碼可以根據不同情況選擇不同的路徑。

PL/SQL 中的條件語句類型

讓我們看看 PL/SQL 中可用的不同類型的條件語句:

語句 目的
IF-THEN 如果條件為真,則執行代碼塊
IF-THEN-ELSE 如果條件為真,則執行一個代碼塊;如果為假,則執行另一個代碼塊
IF-THEN-ELSIF 檢查多個條件並執行對應的代碼塊
CASE 根據值選擇多個代碼塊之一來執行

現在,讓我們詳細探討這些語句。

IF-THEN 語句

IF-THEN 語句是最簡單的條件語句形式。就像說,“如果這是真的,那就做那個。”

語法與範例

IF 條件 THEN
語句;
END IF;

讓我們看看這個語句的實際應用:

DECLARE
v_grade NUMBER := 75;
BEGIN
IF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('恭喜!你通過了。');
END IF;
END;

在這個例子中,如果成績是60或更高,它會打印一條賀詞。如果低於60,則什麼也不會發生。簡單吧?

IF-THEN-ELSE 語句

有時候,你希望如果條件為真,則做一件事;如果為假,則做另一件事。這時,IF-THEN-ELSE 就派上用場了。

語法與範例

IF 條件 THEN
語句1;
ELSE
語句2;
END IF;

讓我們修改我們之前的例子:

DECLARE
v_grade NUMBER := 55;
BEGIN
IF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('恭喜!你通過了。');
ELSE
DBMS_OUTPUT.PUT_LINE('對不起,你沒有通過。請繼續學習!');
END IF;
END;

現在,我們的代碼處理了兩種情況——通過和沒有通過。就像有個備選方案!

IF-THEN-ELSIF 語句

如果我們需要檢查多個條件呢?這時 IF-THEN-ELSIF 來拯救我們了。

語法與範例

IF 條件1 THEN
語句1;
ELSIF 條件2 THEN
語句2;
ELSIF 條件3 THEN
語句3;
ELSE
語句4;
END IF;

讓我們創建一個更詳細的分數評定系統:

DECLARE
v_grade NUMBER := 85;
BEGIN
IF v_grade >= 90 THEN
DBMS_OUTPUT.PUT_LINE('優秀!你得了 A。');
ELSIF v_grade >= 80 THEN
DBMS_OUTPUT.PUT_LINE('做得好!你得了 B。');
ELSIF v_grade >= 70 THEN
DBMS_OUTPUT.PUT_LINE('做得不錯!你得了 C。');
ELSIF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('你以 D 通過了。');
ELSE
DBMS_OUTPUT.PUT_LINE('對不起,你沒有通過。請繼續學習!');
END IF;
END;

這段代碼就像老師評定分數一樣——它檢查多個條件並為每個分數範圍提供相應的反饋。

CASE 語句

當你有一個單一變量或表達式需要與多個可能的值進行比較時,CASE 語句非常適合。

語法與範例

CASE 表達式
WHEN 值1 THEN 結果1
WHEN 值2 THEN 結果2
...
ELSE 結果
END CASE;

讓我們使用 CASE 來確定星期幾:

DECLARE
v_day NUMBER := TO_CHAR(SYSDATE, 'D');
v_message VARCHAR2(20);
BEGIN
v_message := CASE v_day
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
ELSE 'Invalid day'
END;
DBMS_OUTPUT.PUT_LINE('今天는 ' || v_message);
END;

這段代碼就像日歷一樣——它將一個數字轉換為它所代表的星期幾。

嵌套條件

就像俄羅斯套娃一樣,你可以在條件內部嵌套條件。這被稱為嵌套。

嵌套條件的範例

DECLARE
v_age NUMBER := 25;
v_income NUMBER := 50000;
BEGIN
IF v_age >= 18 THEN
IF v_income > 30000 THEN
DBMS_OUTPUT.PUT_LINE('你有資格申請信用卡。');
ELSE
DBMS_OUTPUT.PUT_LINE('你是成年人,但需要更高的收入才能申請信用卡。');
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('你必须年滿18歲才能申請信用卡。');
END IF;
END;

這段代碼就像銀行櫃員在批准信用卡申請之前檢查多個標準一樣。

結論

恭喜你!你剛剛完成了 PL/SQL 中條件判斷的世界導航。記住,這些條件語句就像你的代碼中的交通燈——它們指導流程,並確保一切順利運行。

實踐是掌握這些概念的關鍵。嘗試創建有自己的情景,看看你可以如何使用不同的條件語句來解決問題。在你意識到之前,你將能夠編寫出能夠應對任何情況的複雜、智能的 PL/SQL 程序。

繼續編碼,繼續學習,最重要的是,享受其中!也許有一天,你會成為教導新一代熱情學習者 PL/SQL 的人。

Credits: Image by storyset