日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SQL SERVER中的流程控制語句

瀏覽:25日期:2023-03-06 14:25:24
目錄
  • 批處理
  • 1、BEGIN...AND語句
  • 2、IF...ELSE語句
  • 3、 CASE語句
  • 4、 WHILE語句
  • 5、無條件退出語句RETURN
  • 6、無條件跳轉語句GOTO
  • 7、WAITFOR語句
    • 7.1 DELAY參數
    • 7.2 TIME參數

T-SQL中用來編寫流程控制模塊的語句有:BEGIN...AND語句、IF...ELSE語句、CASE語句、WHILE語句、GOTO語句、BREAK語句、WAITFOR語句和RETURN語句。

批處理

一個批處理段是由一個或者多個語句組成的一個批處理,之所以叫批處理是因為所有語句一次性被提交到一個SQL實例。

  • 批處理是分批提交到SQL Server示例,因此在不同的批處理里局部變量不可訪問。
  • 在不同批處理中,流程控制語句不能跨批處理。
  • 如果想讓多個語句分多次提交到SQL實例,則需要使用GO關鍵字。GO關鍵字本身并不是一個SQL語句,GO關鍵字可以看作是一個批處理結束的標識符,當遇到GO關鍵字時,當前GO之前的語句會作為一個批處理直接傳到SQL實例執行。
DECLARE @i int;
  SET @i = 1;
  GO--分批了
  PRINT @i  --@i在這個批里未定義

1、BEGIN...AND語句

語句塊是多條Transact-SQL語句組成的代碼段,從而可以執行一組Transact-SQL語句。經常與while或if...else組合起來使用,可以相互嵌套。

示例:

DECLARE @count INT
SELECT @count = 0
WHILE @count < 10
BEGIN
    PRINT "count = " + CONVERT(VARCHAR(10), @count)
    SELECT @count = @count + 1
END

PRINT "loop finished, count = " + CONVERT(VARCHAR(10), @count)

2、IF...ELSE語句

IF...ELSE語句用于在執行一組代碼之前進行條件判斷,根據判斷的結果執行不同的代碼。IF...ELSE語句語句對布爾表達式進行判斷,如果布爾表達式返回為TRUE,則執行IF關鍵字后面的語句塊;如果布爾表達式返回FALSE,則執行 ELSE關鍵字后面的語句塊。

語法:

IF Boolean_expression 
     { sql_statement | statement_block } 
[ ELSE 
     { sql_statement | statement_block } ]

示例:

DECLARE @score INT
SET @score = 100
IF @score >= 60
    PRINT "及格"
ELSE
    PRINT "不及格"

3、 CASE語句

CASE語句是多條件分支語句,相比IF...ELSE語句,CASE語句進行分支流程控制可以使代碼更加清晰,易于理解。CASE語句根據表達式邏輯值的真假來決定執行的代碼流程。

語法:

CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END

示例:

DECLARE @score INT
SET @score = 100

SELECT CASE @score 
    WHEN 100 THEN "滿分"
    WHEN 60 THEN "及格"
END
AS "成績"

或者

DECLARE @score INT
SET @score = 100

SELECT CASE 
    WHEN @score >= 90 THEN "優秀"
    WHEN @score >= 80 THEN "良好"
    WHEN @score >= 70 THEN "中等"
    WHEN @score >= 60 THEN "及格"
    ELSE "不及格"
END
AS "成績"

4、 WHILE語句

WHILE語句根據條件重復執行一條或多條T-SQL代碼,只要條件表達式為真,就循環執行語句。可以使用 BREAK 和 CONTINUE 關鍵字在循環內部控制 WHILE 循環中語句的執行。

語法:

WHILE Boolean_expression 
     { sql_statement | statement_block | BREAK | CONTINUE }

參數:

  • Boolean_expression:返回 TRUE 或 FALSE 的表達式。 如果布爾表達式中含有 SELECT 語句,則必須用括號將 SELECT 語句括起來。
  • {sql_statement | statement_block}:Transact-SQL 語句或用語句塊定義的語句分組。 若要定義語句塊,請使用控制流關鍵字 BEGIN 和 END。
  • BREAK:導致從最內層的 WHILE 循環中退出。 將執行出現在 END 關鍵字(循環結束的標記)后面的任何語句。
  • CONTINUE:使 WHILE 循環重新開始執行,忽略 CONTINUE 關鍵字后面的任何語句。
DECLARE @i int;
SET @i = 0;
WHILE(@i < 10)
BEGIN
    SET @i = @i + 1;
    IF(@i % 2 = 0)
    BEGIN
PRINT("跳過2的倍數" + CAST(@i AS varchar));
CONTINUE;
    END
    ELSE IF (@i = 7)
    BEGIN
PRINT("到" + CAST(@i AS varchar) + "就跳出循環");
BREAK;
    END
    PRINT @i;
END

5、無條件退出語句RETURN

RETURN語句用于使程序從一個查詢、存儲過程或批量處理中無條件返回,其后面的語句不再執行。如果在存儲過程中使用return語句,那么此語句可以指定返回給調用應用程序、批處理或過程的負整數;如果沒有為return指定整數值,那么該存儲過程將返回0。

BEGIN
    PRINT(1);
    PRINT(2);
    RETURN;
    PRINT(3);    --在RETURN之后的代碼不會被執行,因為會跳過當前批處理
END
GO
BEGIN
    PRINT(4);
END

6、無條件跳轉語句GOTO

GOTO語句可以使程序無條件跳轉到指定的程序執行點,增加了程序設計的靈活性。但破壞了程序的結構化,使程序結構變得復雜而且難以測試。

使用說明:語句標識符可以是數字或者字母的組合,但必須以":"結束。而在GOTO語句后的標識符不必帶":"。

注意事項:GOTO語句和跳轉標簽可以在存儲過程、批處理或語句塊中的任何地方使用,但不能超出批處理的范圍。

DECLARE @i int;

SET @i = 1;
SET @i = 2;
SET @i = 3;
SET @i = 4;
GOTO ME;
SET @i = 5;  --這行被跳過了
SET @i = 6;  --這行被跳過了
SET @i = 7;  --這行被跳過了

ME:PRINT("跳到我了?");
PRINT @i

輸出結果如下:

跳到我了?
4

7、WAITFOR語句

waitfor語句用于掛起語句的執行,直到指定的時間點或者指定的時間間隔。

語法:

WAITFOR 
{
    DELAY "time_to_pass" 
  | TIME "time_to_execute" 
  | [ ( receive_statement ) | ( get_conversation_group_statement ) ] 
    [ , TIMEOUT timeout ]
}

在waitfor語句中不能包含打開游標,定義視圖這樣的操作。在包含事務的語句中不要使用waitfor語句,因為waitfor語句在時間點或時間間隔執行期間將一直擁有對象的鎖,當事務中包含waitfor語句,事務的其他語句又需要訪問被鎖住的數據對象事就容易發生死鎖現象。

7.1 DELAY參數

DELAY參數指定了等待的時間段。不能指定天數,只能指定小時數、分鐘數和秒數。允許延遲的最長時間為24小時。

WAITFOR DELAY "01:00"

將運行WAITFOR語句前的任何代碼,然后到達WAITFOR語句,停止1小時,之后繼續執行下一條語句中的代碼。

7.2 TIME參數

TIME參數指定到達指定時間的等待時間。

WAITFOR TIME "01:00"

將運行WAITFOR語句前的任何代碼,然后到達WAITFOR語句,直到凌晨1點停止執行,之后執行WAITFOR語句后的下一條語句。

到此這篇關于SQL SERVER流程控制語句的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

標簽: MsSQL
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美黄色一区二区| 在线观看一区| 久久精品国产999大香线蕉| 国产精久久一区二区| 国产一区丝袜| 亚洲高清不卡| 国产视频一区三区| 日韩av在线免费观看不卡| 久久精品亚洲一区二区| 久久久久午夜电影| 乱人伦精品视频在线观看| 日本中文字幕不卡| 国产一区一一区高清不卡| 色88888久久久久久影院| 99在线|亚洲一区二区| 日韩专区欧美专区| 在线天堂资源www在线污| 久久亚洲色图| 国产精品原创| 亚洲欧美久久精品| 国产成人77亚洲精品www| 国产视频一区在线观看一区免费| 奇米亚洲欧美| 欧美美女一区| 国产欧美激情| 国产亚洲精品自拍| 欧美国产美女| 天堂久久av| 亚洲精品99| 久久97视频| 一区二区91| 欧美日韩中文一区二区| 精品国产一区二| 欧美天堂一区| 日韩中文字幕| 亚洲在线成人| 激情欧美亚洲| 成人日韩在线| 国产精品xx| 成人国产精品一区二区免费麻豆| 国产精品毛片一区二区三区| 欧美激情国产在线| 里番精品3d一二三区| 日韩国产一二三区| 蜜臀av在线播放一区二区三区| 国产精品成人3p一区二区三区| 天堂va蜜桃一区二区三区| 精品亚洲美女网站| 日韩美女一区二区三区在线观看| 国产精品v亚洲精品v日韩精品| 日本欧美一区二区| 亚洲天堂日韩在线| 蜜桃视频在线观看一区| 性欧美69xoxoxoxo| 久久婷婷丁香| 亚洲国产专区校园欧美| 韩国三级一区| 欧美 日韩 国产一区二区在线视频| 97精品中文字幕| 日韩免费小视频| 久久精品国产亚洲一区二区三区| 国产精品xxxav免费视频| 精品国产精品国产偷麻豆| 狂野欧美性猛交xxxx| 中文在线а√在线8| 欧美成人精品三级网站| 欧美日韩国产综合网| 亚洲精品在线a| 久久国产视频网| 精品视频在线你懂得| 99视频精品全国免费| 免费不卡在线观看| 日韩福利视频网| 91欧美极品| 日本一区二区免费高清| 91亚洲国产| 99在线精品免费视频九九视| 日韩亚洲精品在线观看| 精品三级在线| 秋霞影院一区二区三区| 自拍自偷一区二区三区| 精品国产麻豆| 亚洲婷婷丁香| 欧美日韩精品免费观看视欧美高清免费大片 | 蜜臀av一区二区三区| 欧美激情福利| 一本色道精品久久一区二区三区| 欧美日韩调教| 亚洲自拍另类| 日韩专区精品| 欧美日韩网址| 美女精品在线观看| 成人福利av| 日韩av一区二| 日韩一区精品视频| 美女福利一区二区三区| 深夜福利一区| 电影亚洲精品噜噜在线观看| 日韩精品中文字幕一区二区| 激情偷拍久久| 天堂av在线| 久久丁香四色| 国产欧美一区二区色老头| 伊人久久成人| 91精品一区二区三区综合在线爱| 欧美成人精品午夜一区二区| 日韩亚洲精品在线观看| 麻豆91精品| 国产亚洲毛片| 99国产精品久久久久久久| 亚洲精品一区三区三区在线观看| 欧美激情综合| 日韩国产欧美三级| 亚洲欧美网站在线观看| 日韩在线一区二区| 久久亚洲电影| 性欧美长视频| 亚洲深深色噜噜狠狠爱网站 | 亚洲自啪免费| 久久亚洲不卡| 亚洲综合福利| 午夜电影一区| 国产美女久久| 久久精品国产福利| 国产精品多人| 水蜜桃精品av一区二区| 国产日韩电影| 久久精品高清| 欧美午夜不卡影院在线观看完整版免费| 亚洲a一区二区三区| 亚洲精品国产偷自在线观看| 欧美大黑bbbbbbbbb在线| 国产视频一区欧美| 色狠狠一区二区三区| 婷婷精品在线观看| 欧美视频久久| 色88888久久久久久影院| 尤物在线精品| 欧美精品三级在线| 欧美aⅴ一区二区三区视频| av资源新版天堂在线| 亚洲手机在线| 亚洲资源在线| 国产精品伦理久久久久久| 欧美日韩国产一区精品一区| 日韩黄色免费网站| 色网在线免费观看| 午夜电影一区| 久久91导航| 欧美日韩亚洲一区在线观看| 91看片一区| 日本免费一区二区视频| 伊人久久高清| 久久国产生活片100| 国产精品99在线观看| 免费日本视频一区| 日韩在线综合| 麻豆精品久久| 日韩久久一区| 欧美成人亚洲| 国产精品13p| 欧美一区影院| 麻豆精品91| 亚洲天堂久久| 久久免费精品| 日韩av网站在线免费观看| 亚洲激情黄色| 久久精品国产大片免费观看| 国产乱码精品一区二区三区亚洲人| 97精品国产| 久久精品免视看国产成人| 中文字幕亚洲精品乱码| 不卡在线一区二区| 99精品电影| 日产精品一区| 成人av三级| 麻豆mv在线观看| 国产在线不卡一区二区三区 | 免费看的黄色欧美网站| 99精品视频在线观看免费播放| 精品一区二区三区中文字幕在线| 日韩精品一级| 亚洲一区导航| 亚洲欧美日本国产| 亚洲v天堂v手机在线| 日韩专区一卡二卡| 蜜臀久久久久久久| 亚洲日本在线观看视频| 亚洲视频国产| 欧美影院视频| 久久亚洲国产精品尤物| 精品网站aaa| 亚洲成人不卡| 久久一区二区三区电影| av中文资源在线资源免费观看| 九九久久国产| 色爱综合av| 99riav1国产精品视频| 中文字幕一区日韩精品| 国产精品欧美大片|