Sql Server系列:流程式控制制語句

來源:互聯網
上載者:User

標籤:style   blog   io   ar   color   使用   sp   for   strong   

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

1. BEGIN...AND語句

  語句塊是多條Transact-SQL語句組成的程式碼片段,從而可以執行一組Transact-SQL語句。BEGIN和END是流程控制語言的關鍵字。BEGIN...END語句塊通常包含在其他控制流程程中,用來完成不同流程中有差異的代碼功能。

  樣本:

DECLARE @count INTSELECT @count = 0WHILE @count < 10BEGIN    PRINT ‘count = ‘ + CONVERT(VARCHAR(10), @count)    SELECT @count = @count + 1ENDPRINT ‘loop finished, count = ‘ + CONVERT(VARCHAR(10), @count)

  執行結果:

count = 0count = 1count = 2count = 3count = 4count = 5count = 6count = 7count = 8count = 9loop finished, count = 10

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 INTSET @score = 100IF @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 INTSET @score = 100SELECT CASE @score             WHEN 100 THEN ‘滿分‘            WHEN 60 THEN ‘及格‘        END        AS ‘成績‘
DECLARE @score INTSET @score = 100SELECT 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 關鍵字後面的任何語句。

Sql Server系列:流程式控制制語句

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.