用法:1、“if THEN END IF”語句決定單個條件下語句是否執行;2、“IF THEN ELSE END IF”語句決定兩個條件下語句是否執行;3、“IF THEN LESIF ELSE END IF”語句決定多個條件語句是否執行。
本教程操作環境:Windows10系統、oracle 11g版、Dell G3電腦。
oracle中if的用法是什么
IF語句可以有3種使用方法,如下表:
1.1?IF-THEN組合
IF-THEN語法的常見格式如下:
IF?condition THEN ??????...執行的語句... END?IF;
其中,condition是一個布爾類型的變量、常量,其值可能存在三種情況:TRUE,FALSE,NULL
例如存在這樣的條件?IF?sal?>?1000;?dbms_output.put_line(‘null’);END?IF;,這個條件可能返回TRUE,FALSE,但是當sal的值是NULL的時候,也就是:IF?NULL?>?1000,返回的值就是NULL
上述情況為了避免NULL值產生,我們可以使用IF?sal?>?1000?OR?sal?is?null;?dbms_output.put_line(‘null’);END?IF;來避免,也可以使用空值處理函數處理
1.2?IF-THEN-ELSE組合
語法格式如下:
IF?condition THEN ?????...?TRUE?sequence?of?executeable?statements?...? ELSE ????...?FALSE/NULL?sequence?of?executeable?statements?...?? END?IF;
1.3?IF-THEN-ELSIF組合
要特別注意:此處是ELSIF不是ELSEIF,寫成ELSE?IF也是不行的。
語法格式如下:
IF?condition-1 THEN ??????statements-1 ELSIF?condition-N THEN ??????statements-N [ELSE ??????else-statements] END?IF;
2.短路求值
PL/sql使用短路求值方法,也就是說PL/SQL不需要對一個IF語句中的所有表達式都去求值。比如,當對下面這個IF語句中的表達式求值的時候,如果第一個條件是FALSE或者NULL,則PL/SQL會停止對表達式繼續求值,立即跳轉到ELSE分支上;
IF?condition1?AND?condition2 THEN ??????... ELSE ??????... END?IF;
根據短路求值原理,存在多個條件時,一定要將會消耗大量的CPU和內存資源的條件放到整個條件集的最后。
推薦教程:《Oracle視頻教程》