Oracle之選擇結構和迴圈結構

2021-07-25 07:54:08 字數 2437 閱讀 4682

(1)if語句

if  then  

[elsif (條件表示式2)then

{語句序列2;)]

[else

{語句序列3;)]

endif;

需要注意的是,上述命令格式中elseif的拼寫裡只有乙個e,不是elseif,而是elsif

三種用法舉例:

1.if…then

if a=40 then 

insert

into temp_table values(name,birthday);

endif;

2.if…then…else
if a>=40

then

insert into elder_table values(name,birthday);

else

insert into younger_table values(name,birthday);

endif;

3.if…then…elseif
if score>90

then

score:=score-5;

elsif score<60

then

score:=score+5;

endif;

(2)case語句

case結構是oracle 9i後新增加的內容,類似於c中的switch語句,格式如下:

case 檢測表示式

when 表示式1 then 語句序列1

when 表示式2 then 語句序列2

...[else 其他語句序列]

end;

其中,case語句中的else子句是可選的,如果檢測表示式的值與下面任何乙個表示式的值都不匹配時,pl/sql會產生預定義錯誤case_not_fount。

例如:

declare 

str varchar2(20):='b';

numb number(1);

begin

numb:=case str

when

'a'then

1when

'b'then

2when

'c'then

3else

4end;

dbms_output.put_line(numb);

end;

輸出:2

如果var_a為null的話,那麼

var_a>1;

var_a<1;

都是不成立的。所以這時候應該有乙個null的判斷。語句為:

if var_a is null then

...

(1)loop…exit…end loop語句

這是乙個迴圈控制語句,關鍵字loopend表示迴圈執行的語句範圍,exit關鍵字表示退出迴圈,它常常在乙個if判斷語句中。

例如:

c:=0;  --迴圈標誌變數

loop

if c>5

then

--如果c大於5則退出迴圈

exit;

endif; c:=c+1;

endloop;

(2)loop…exit when…end loop語句

表示當when後面判斷為真時退出迴圈。

例如:

c:=0;

loop

exit

when c>5; --注意此處有個省略號

c:=c+1;

endloop;

(3) while…loop…end loop語句

該語句也是控制迴圈,不過是先判斷再進入迴圈,而不是像前兩個一樣是可以設定exit的位置來選擇。

c:=0;

while c<=5

loop

c:=c+1;

endloop;

(4) for…in…loop…end loop語句

這是個預知迴圈次數的迴圈控制語句。

例如,下邊這個程式和上邊那個的執行結果是一樣的:

c:=0;

for a in

0..5

loop

--c從0到5進行迴圈(注意是兩個點)

c:=c+1;

endloop;

學習書籍:《oracle+11g從入門到精通》

選擇結構和迴圈結構

一 if if else if else if else if else 三種,都是對boolean表示式判斷 switch 裡面是乙個表示式就行,對結果進行常量判斷,若干個case常量break,最後 default break,二 迴圈結構 1 普通for迴圈 2 while迴圈 4 三種迴圈的...

選擇和迴圈結構

一 if else if else 只會執行其中的乙個分支,其他分支會被繞開。二執行switch語句時,遇到了符合的case後,如果沒有break,會執行接下來的所有case中的 不會再判斷case是否符合switch的表示式 包括default語句,除非遇到break int a1 1 int a...

Python 選擇結構 和迴圈結構

一 選擇結構 cunkuan 60 1.簡單if判斷 if cunkuan 100 print 可以買寶馬!須縮排 print 好開心!else 後面不要跟條件 print 還是騎自行車吧 2.多條件判斷 cunkuan 60 if cunkuan 100 print 買寶馬 elif cunkua...