oracle中if的用法是什么

用法:1、“if THEN END IF”語(yǔ)句決定單個(gè)條件下語(yǔ)句是否執(zhí)行;2、“IF THEN ELSE END IF”語(yǔ)句決定兩個(gè)條件下語(yǔ)句是否執(zhí)行;3、“IF THEN LESIF ELSE END IF”語(yǔ)句決定多個(gè)條件語(yǔ)句是否執(zhí)行。

oracle中if的用法是什么

本教程操作環(huán)境:Windows10系統(tǒng)、oracle 11g版、Dell G3電腦。

oracle中if的用法是什么

IF語(yǔ)句可以有3種使用方法,如下表:

oracle中if的用法是什么

1.1?IF-THEN組合

IF-THEN語(yǔ)法的常見格式如下:

IF?condition THEN ??????...執(zhí)行的語(yǔ)句... END?IF;

其中,condition是一個(gè)布爾類型的變量、常量,其值可能存在三種情況:TRUE,FALSE,NULL

例如存在這樣的條件?IF?sal?>?1000;?dbms_output.put_line(‘null’);END?IF;,這個(gè)條件可能返回TRUE,FALSE,但是當(dāng)sal的值是NULL的時(shí)候,也就是:IF?NULL?>?1000,返回的值就是NULL

上述情況為了避免NULL值產(chǎn)生,我們可以使用IF?sal?>?1000?OR?sal?is?null;?dbms_output.put_line(‘null’);END?IF;來(lái)避免,也可以使用空值處理函數(shù)處理

1.2?IF-THEN-ELSE組合

語(yǔ)法格式如下:

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也是不行的。

語(yǔ)法格式如下:

IF?condition-1 THEN ??????statements-1 ELSIF?condition-N THEN ??????statements-N [ELSE ??????else-statements] END?IF;

2.短路求值

PL/sql使用短路求值方法,也就是說(shuō)PL/SQL不需要對(duì)一個(gè)IF語(yǔ)句中的所有表達(dá)式都去求值。比如,當(dāng)對(duì)下面這個(gè)IF語(yǔ)句中的表達(dá)式求值的時(shí)候,如果第一個(gè)條件是FALSE或者NULL,則PL/SQL會(huì)停止對(duì)表達(dá)式繼續(xù)求值,立即跳轉(zhuǎn)到ELSE分支上;

IF?condition1?AND?condition2 THEN ??????... ELSE ??????... END?IF;

根據(jù)短路求值原理,存在多個(gè)條件時(shí),一定要將會(huì)消耗大量的CPU和內(nèi)存資源的條件放到整個(gè)條件集的最后。

推薦教程:《Oracle視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享