條件分支語句 • IF 語句: –IF-THEN-END IF –IF-THEN-ELSE-END IF –IF-THEN-ELSIF-END IF –case語句: •迴圈語句 –loop
文法:
- </pre><pre name="code" class="plain">IF condition THEN
- statements;
- [ELSIF condition
- THEN statements;]
- [ELSE statements;]
- END IF;
condition 是一個布爾變數或運算式 (值為TRUE, FALSE或NULL) (僅當運算式為TRUE時執行
THEN 之後的語句)。
THEN 是一個子句,與前面的布林運算式相聯絡。
statements 是 若干個PL/SQL 或 SQL 陳述式 (語句中可能還有嵌套的IF 語句)。
ELSIF 這個關鍵字將引入一個布林運算式 (如果第一個條件結果為FALSE或NULL,ELSEIF 關鍵
字將引出附加的選擇條件) 。
ELSE 如果IF條件不成立則執行ELSE關鍵字後面的語句。
更多Oracle相關資訊見Oracle 專題頁面 http://www.bkjia.com/topicnews.aspx?tid=12
NULL的處理
- DECLARE • x number(2):= 5;
- y number(2):= NULL;
- BEGIN
- IF x != y THEN
- dbms_output.put_line(100);
- ELSE
- dbms_output.put_line(200);
- END IF;
- END;
任何包含空值的算術運算式結果均為空白值。
僅當變數值為NULL時,IS NULL 的傳回值是 TRUE 。
可把空變數當作Null 字元串來串連運算式。
- DECLARE
- x number(2):=null;
- y number(2):=null;
- begin
- if x!=y then
- dbms_output.put_line(100);
- else
- dbms_output.put_line(200);
- end if;
- end;
-
-
-
- DECLARE
- x number(2):=null;
- y number(2):=null;
- begin
- if x=y then
- dbms_output.put_line(100);
- else
- dbms_output.put_line(200);
- end if;
- end;
都輸出200
- DECLARE
- x number(2):=5;
- y number(2):=null;
- begin
- if nvl(x,0)!=nvl(y,0) then
- dbms_output.put_line(100);
- else
- dbms_output.put_line(200);
- end if;
- end;
輸出100
邏輯表: