條件處理:condtional processing
1.case函數(shù)以一個(gè)表達(dá)式作為輸入,一個(gè)值作為輸出
格式:case 后面有輸入表達(dá)式,when后面的的每一個(gè)表達(dá)式都會(huì)和case后面的輸入表達(dá)式進(jìn)行比較運(yùn)算
如果相等,則返回,否則返回else后面的表達(dá)式,如果沒有else則返回NULL。
case input_expression
when when_expression then result_expression
[...n]
[else else_result_expression]
end
case的第二種情況:
case后面沒有表達(dá)式,when后面跟的是bool表達(dá)式。返回第一個(gè)when后面計(jì)算為true的表達(dá)式
格式為:
case
when bool_expression then result_expression
[...n]
else result_expression
end
2. if....else...的格式
if bool_expression
{sql_statement|sql_block}
[else
{sql_statement|sql_block}
]
3.begin ....end 相當(dāng)于c++中的{...}用來形成一個(gè)代碼塊
4.條件循環(huán)
return,while,goto,waitfor
return
return 用于結(jié)束當(dāng)前的sql塊,查詢,存儲(chǔ)過程。
類似于c++中的return。
return 可以返回一個(gè)數(shù)字
while 類似c++中的while,同樣支持break,continue,break來結(jié)束當(dāng)前內(nèi)層循環(huán),continue繼續(xù)當(dāng)前循環(huán)
waitfor格式
waitfor
delay 'time_to_pass'//執(zhí)行前等待的時(shí)間:格式為00:00:00小時(shí):分鐘:秒
|time 'time_to_execute'//設(shè)置實(shí)際執(zhí)行的時(shí)間
|(receive_statement)[,TimeOUT timeout]
可以利用waitfor將某些復(fù)雜的執(zhí)行設(shè)定為在相對空閑的時(shí)間內(nèi)進(jìn)行。