前言
CASE敘述亦是種流程控制的應用,依照使用方式的不同可分為Simple CASE Statement以及Searched CASE Statement,相關說明如下。
Simple CASE Statement
Simple CASE Statement的使用方式比較像是撰寫其他程式所使用的Switch陳述句,語法如下
1
2
3
4
5
6
7
8
9
| [<<LABEL_NAME>>]
CASE 運算元
WHEN 值1 THEN
......
WHEN 值2 THEN
......
ELSE
......
END CASE [LABEL_NAME];
|
以下進行相關示範
1
2
3
4
5
6
7
8
9
10
11
12
| DECLARE
V_SCORE VARCHAR(1) := 'A';
BEGIN
CASE V_SCORE
WHEN 'A' THEN
DBMS_OUTPUT.PUT_LINE('您的評分:' || V_SCORE);
WHEN 'B' THEN
DBMS_OUTPUT.PUT_LINE('您的評分:' || V_SCORE);
ELSE
DBMS_OUTPUT.PUT_LINE('輸入無效!');
END CASE;
END;
|
執行結果
Searched CASE Statement
Searched CASE Statement的使用方式跟 IF 判斷式比較接近,相關語法如下
1
2
3
4
5
6
7
8
9
| [<<LABEL_NAME>>]
CASE [TRUE|FALSE]
WHEN 布林運算式1 THEN
......
WHEN 布林運算式2 THEN
......
ELSE
......
END CASE [LABEL_NAME];
|
以下修改IF判斷式的範例進行相關示範
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| DECLARE
V_AGE INT := 33;
BEGIN
CASE
WHEN V_AGE BETWEEN 18 AND 30 THEN
DBMS_OUTPUT.PUT_LINE('您的年齡:' || V_AGE || ', 為青年.');
WHEN V_AGE BETWEEN 31 AND 44 THEN
DBMS_OUTPUT.PUT_LINE('您的年齡:' || V_AGE || ', 為壯年.');
WHEN V_AGE BETWEEN 45 AND 59 THEN
DBMS_OUTPUT.PUT_LINE('您的年齡:' || V_AGE || ', 為中年.');
WHEN V_AGE BETWEEN 60 AND 69 THEN
DBMS_OUTPUT.PUT_LINE('您的年齡:' || V_AGE || ', 為前期高年.');
WHEN V_AGE > 69 THEN
DBMS_OUTPUT.PUT_LINE('您的年齡:' || V_AGE || ', 為老年.');
ELSE
DBMS_OUTPUT.PUT_LINE('您的年齡:' || V_AGE || ', 尚未成年.');
END CASE;
END;
|
執行結果