⑴ 存儲過程里if判斷問題
sql">
p_cntnumber;
begin
selectcount(1)intop_cntfromtest2;
ifp_cnt>0then
deletefromtest2;
endif;
selectcount(1)intop_cntfromtest4;
ifp_cnt>0then
deletefromtest4;
endif;
insertintotest2
select*fromtest1;
insertintotest4
select*fromtest3;
commit;
end;
⑵ 可以在存儲過程中加if語句嗎
不懂。。。。。如果不滿足你的AND條件,DELETE就算執行了也返回0,不會刪除任何記錄,你這個要求有意思么?
⑶ 存儲過程 if語句的使用
那就要看一下你的readerinfo表上面是不是有觸發器了:
create proc sp_test
as
update
set rrrid=case when rrrid=0 then 20 else 0 end
where readerid='s001'
⑷ oracle 存儲過程 if語句
&&用and表示,如:
if 1=1 and 2=2 then
...
end;
||用or表示。
!用not表示。
⑸ mysql 存儲過程中if控制語句的條件判斷問題
if (@num1 < @time)
AND (@num2 < @time)
AND (@num3 < @time)
then
⑹ 請教ms sqlserver存儲過程如何寫多個if語句
select @user_blog_lock='yes'elseselect @user_blog_lock='no'GO這樣寫,後面那二條語句是沒有執行到的。用到else if 是錯誤的語法,如果都都用if,第二條語句以後都不能執行了
變數的輸入是對的。
第二、三條IF語句是不能執行了。看聯機叢書 F1
-----------------------IF...ELSE在執行 Transact-SQL 語句時強加條件。如果條件滿足(布爾表達式返回 TRUE 時),則在 IF 關鍵字及其條件之後執行 Transact-SQL 語句。可選的 ELSE 關鍵字引入備用的 Transact-SQL 語句,當不滿足 IF 條件時(布爾表達式返回 FALSE),就執行這個語句。
語法IF Boolean_expression
{ sql_statement | statement_block }[ ELSE{ sql_statement | statement_block } ]參數Boolean_expression
是返回 TRUE 或 FALSE 的表達式。如果布爾表達式中含有 SELECT 語句,必須用圓括弧將 SELECT 語句括起來。
{sql_statement | statement_block}
Transact-SQL 語句或用語句塊定義的語句分組。除非使用語句塊,否則 IF 或 ELSE 條件只能影響一個 Transact-SQL 語句的性能。若要定義語句塊,請使用控制流關鍵字 BEGIN 和 END。如果在 IF...ELSE 塊的 IF 區和 ELSE 區都使用了 CREATE TABLE 語句或 SELECT INTO 語句,那麼 CREATE TABLE 語句或 SELECT INTO 語句必須指向是相同的表名。
注釋IF...ELSE 結構可以用在批處理中,存儲過程中(經常使用這種結構測試是否存在著某個參數),以及特殊查詢中。
可以在其它 IF 之後或在 ELSE 下面,嵌套另一個 IF 測試。對於嵌套層數沒有限制。
示例
A. 使用一個 IF...ELSE 塊
下面的示例顯示帶有語句塊的 IF 條件。如果書的平均價格不低於 $15,那麼就顯示文本:Average title price is more than $15.
USE pubsIF (SELECT AVG(price) FROM titles WHERE type = 'mod_cook') < $15BEGINPRINT 'The following titles are excellent mod_cook books:'PRINT ' 'SELECT SUBSTRING(title, 1, 35) AS Title
FROM titles
WHERE type = 'mod_cook'ENDELSEPRINT 'Average title price is more than $15.'
下面是結果集:
The following titles are excellent mod_cook books:Title-----------------------------------
Silicon Valley Gastronomic Treats
The Gourmet Microwave
(2 row(s) affected)
B. 使用多個 IF...ELSE 塊
下面的示例使用了兩個 IF 塊。如果書的平均價格不低於 $15,那麼就顯示文本:Average title price is more than $15。如果現代烹調書的平均價格高於 $15,則顯示現代烹調書價格昂貴的語句。
USE pubsIF (SELECT AVG(price) FROM titles WHERE type = 'mod_cook') < $15BEGINPRINT 'The following titles are excellent mod_cook books:'PRINT ' 'SELECT SUBSTRING(title, 1, 35) AS Title
FROM titles
WHERE type = 'mod_cook'ENDELSEIF (SELECT AVG(price) FROM titles WHERE type = 'mod_cook') > $15BEGINPRINT 'The following titles are expensive mod_cook books:'PRINT ' 'SELECT SUBSTRING(title, 1, 35) AS Title
⑺ 能不能在存儲過程裡面寫if 語句或when語句等控制語句
可以啊,IF
的用法:
IF
1=1
SELECT
'正確'
ELSE
SELECT
'錯誤'
when
是CASE(根據多種條件,返回多個可能結果之一)的子句:
SELECT
CASE
WHEN
1=1
THEN
'正確'
else
'錯誤'
end
⑻ SQL存儲過程中,if判斷語句中有多個判斷條
if(@rq2 is null or @rq2!=@a11) //多個判斷條件
begin
處理
end
else
begin
處理
end