存儲過程ifelse
『壹』 怎麼編輯存儲過程的if,else
Oracle 是下面這種寫法:
IF testvalue > 100 THEN
dbms_output.put_line( '100+' );
ELSIF testvalue = 100 THEN
dbms_output.put_line( '100' );
ELSE
dbms_output.put_line( '100-' );
END IF;
DB2, MYsql 是下面這種寫法: ( 與 Oracle 區別在於那個 ELSIF )
IF p_val > 100 THEN
INSERT INTO output_debug VALUES( '100+' );
ELSEIF p_val = 100 THEN
INSERT INTO output_debug VALUES( '100' );
ELSE
INSERT INTO output_debug VALUES( '100-' );
END IF;
SQL Server 有些差別:
IF @testvalue > 100
BEGIN
PRINT( '100+' );
END
ELSE IF @testvalue = 100
BEGIN
PRINT( '100' );
END
ELSE
BEGIN
PRINT( '100-' );
END
『貳』 sqlserver中if else的用法,我寫的這個存儲過程 提示else附近有語法錯誤
樓上正解,if-else語法為,最好不要把begin
end省略掉
if
a>b
Begin
print
'a'
End
Else
Begin
print
'b'
End
『叄』 Oracle 存儲過程IF ELSE 老提示 DROP TABLE 時有錯
存儲過程裡面不能直接寫DDL
then
excute immediate 「DROP TABLE SJKPROBHCR」;
Else
『肆』 ifelse語句格式
if 語句是一種分支結構,當條件滿足時,有「執行該操作語句」和「跳過執行該操作語句」的兩條分支。 if 語句的格式如下。
當 if 體中的語句多於一條時,要用 {} 把這些語句括起來形成一條復合語句,如下所示。
if (條件表達式)
{
復合語句A;
}
當 if 體為一條簡單語句時,可以省略 {},即:
if (條件表達式)
簡單語句A; //if體
該條件表達式可以是關系表達式、邏輯表達式、算術表達式或混合表達式等。只要其值為真或非零均執行 if 體。例如:
if (a>6) //關系表達式,當 a>6 時表達式值為真,執行if體
Statement(s);
if (a||b) //邏輯表達式,只要a、b中有一個為真,結果為真,執行if體
Statement(s);
if (3-6) //算術表達式,只要該表達式的值非0,結果為真,執行if體
Statement(s);
/*關系、邏輯混合表達式,只要age>=60或age<=10其中一項為真,結果為真,執行if體*/
if (age>=60 ||age<=10)
Statement(s);
if 語句的執行流程:首先判斷關鍵詞 if 後括弧內條件表達式的值,如果該表達式的值為邏輯真(非 0),則執行 if 體,接著執行 if 體後的其他語句;否則,若該表達式的值為邏輯假(0),則不執行該 if 體,直接執行 if 體後的其他語句。
if-else語句
if-else 語句的格式如下。當 if 語句體或 else 語句體中的語句多於一條時,要用 {} 把這些語句括起來形成一條復合語句,如下所示。
if(條件表達式)
{
復合語句A; //if體
}
else
{
復合語句B; //else體
}
當 if 體或 else 體為一條簡單語句時,可以省略 {},即:
if(條件表達式)
簡單語句A;//if體
else
簡單語句B;//else體
同 if 語句一樣,條件表達式可以是關系表達式、邏輯表達式、算術表達式或混合表達式等。
if-else 語句的執行流程:首先判斷關鍵詞if後括弧內條件表達式的值,如果該表達式的值為邏輯真(非 0),則執行 if 體(語句 A),而不執行 else 體(語句 B),然後繼續執行 if-else 之後的其他語句;否則,若該表達式的值為邏輯假(0),則不執行該 if 體(語句 A),而執行 else 體(語句 B),然後繼續執行 if-else 之後的其他語句。
由於表達式的值在邏輯上只有真和假,故 if 和 else 在執行流程上是互斥的,執行且只能執行兩者中的一個。
『伍』 存儲過程的if,else怎麼寫
不同的資料庫中,存儲過程中if else 語句寫法有一些差別。
如果是SQLServer資料庫,存儲過程的if, else語句可以這樣寫:
ifa>b
Begin
print'a'
End
Elseifa<b
Begin
print'b'
End
Else
Begin
print'代碼'
End
Oracle 採用下面這種寫法:
IFtestvalue>100THEN
dbms_output.put_line('100+');
ELSIFtestvalue=100THEN
dbms_output.put_line('100');
ELSE
dbms_output.put_line('100-');
ENDIF;
DB2, MYSQL 是下面這種寫法: ( 與 Oracle 區別在於那個 ELSIF )
IFp_val>100THEN
INSERTINTOoutput_debugVALUES('100+');
ELSEIFp_val=100THEN
INSERTINTOoutput_debugVALUES('100');
ELSE
INSERTINTOoutput_debugVALUES('100-');
ENDIF;
『陸』 mssql存儲過程if...else。判斷
不知道。。
我做了測試
declare @num int
declare @sql varchar(100)
set @num = 0
if(@num>0)
set @sql = 'update table set....'
else
set @sql='insert into table values'
print (@sql)
發現能print出來語句啊
『柒』 存儲過程應用語句有哪些
存儲過程與其他面向對象的程序設計語言一樣,同樣包含數據類型、流程式控制制、語句注釋、輸入和輸出與自己的函數庫。存儲過程的流程式控制制語句有ifelse、casewhenthen、while等,但沒有for循環,跟C++、Java等語言的流程式控制制語句非常類似。條件語句條件語句是流程式控制制的重要組成部分,跟其他編程語言一樣,存儲過程允許使用if關鍵字來作條件判斷,除此之外,還可以使用case來實現其他更為靈活的條件控制。
1.if語句(1)if語法if語句是最普通的條件控制語句,其語法簡單易懂,在存儲過程代碼中隨處可見,也是使用頻率最高的條件判斷語句。
語法格式:if…then…elseif…then…else…endif其中,((1)if後面跟判斷條件;
(2)elseif後面跟判斷條件;
(3)then後面跟條件分支語句塊;
(4)可以有多個elseif…then語句塊,也可以沒有;(5)else表示以上條件均不滿足時會執行的語句塊;
(6)整個條件語句塊的最後面以endif表示結束。if語句的用法,以語句「ifcondition_para=1then」開始條件控制,以語句「endif」結束條件控制,中間用「elseif」「else」作條件分支控制。單個SQL語句if語法語句格式:if(expr1
『捌』 在sqlserver的存儲過程中怎樣使用if-else if
ifa>b
Begin
print'a'
End
Elseifa<b
Begin
print'b'
End
Else
Begin
print'代碼'
End
if-else語法為,最好不要把beginend省略掉。否則,存儲過程比較長可能會報語法錯誤
『玖』 sql 寫一個存儲過程寫一個insert,當 if else 執行到else時 就結束 怎麼寫
result := true; 是delphi中的寫法
換成return true;
『拾』 oracle 存儲過程里的if else
ifS_date=4then
p_temp();
elsifS_date!=4then
p_temp2();
endif;