程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL流程控制語句

SQL流程控制語句

編輯:關於SqlServer

流程控制語句

Transact-SQL語言提供了一些可以用於改變語句執行順序的命令,稱為流程控制語句。流程控制語句允許用戶更好地組織存儲過程中的語句,方便地實現程序的功能。流程控制語句與常見的程序設計語言類似,主要包含以下幾種。

(1)   IF…ELSE語句

 

IF <條件表達式>

     <命令行或程序塊>

[ELSE [條件表達式]

     <命令行或程序塊>]

 

其中<條件表達式>可以是各種表達式的組合,但表達式的值必須是“真”或“假”。ELSE子句是可選的。IF…ELSE語句用來判斷當某一條件成立時執行某段程序,條件不成立時執行另一段程序。如果不使用程序塊,IF或ELSE只能執行一條命令。IF…ELSE可以嵌套使用,最多可嵌套32級。

(2)   BEGIN…END語句

 

BEGIN

     <命令行或程序塊>

END

 

BEGIN…END用來設置一個程序塊,該程序塊可以被視為一個單元執行。BEGIN…END經常在條件語句中使用,如IF…ELSE語句。如果當IF或ELSE子句為真時,想讓程序執行其後的多條語句,這時就要把這多條語句用BEGIN…END括起來使之成為一個語句塊。在BEGIN…END語句中可以嵌套另外的BEGIN…END語句來定義另一程序塊。

(3)   CASE語句

 

CASE<運算式>

     WHEN<運算式>THEN<運算式>

amily: 宋體;">…

WHEN<運算式>THEN<運算式>

 [ELSE<運算式>]

END

 

例如,在pubs數據庫中查詢每個作者所居住州的全名,可以使用如下代碼實現:

 

SELECT au_fname, au_lname,

   CASE state

      WHEN ''CA'' THEN ''California''

      WHEN ''KS'' THEN ''Kansas''

      WHEN ''TN'' THEN ''Tennessee''

      WHEN ''OR'' THEN ''Oregon''

      WHEN ''MI'' THEN ''Michigan''

      WHEN ''IN'' THEN ''Indiana''

      WHEN ''MD'' THEN ''Maryland''

      WHEN ''UT'' THEN ''Utah''

        END AS StateName

FROM pubs.dbo.authors

ORDER BY au_lname

 

執行結果:

 

au_fname            au_lname                                   StateName 

-------------------- ---------------------------------------- ----------

Abraham             Bennet                                     California

Reginald            Blotchet-Halls                           Oregon

Cheryl              Carson                                     California

Michel              DeFrance                                   Indiana

Innes               del Castillo                             Michigan

Ann                  Dull                                        California

 

(4)   WHILE…CONTINUE…BREAK語句

 

WHILE<條件表達式>

BEGIN

     <命令行或程序塊>

     [BREAK]

     [CONTINUE]

     [命令行或程序塊]

END

 

WHILE語句在設置的條件為真時會重復執行命令行或程序塊。

CONTINUE語句可以讓程序跳過CONTINUE語句之後的語句,回到WHILE循環的第一行。BREAK語句則讓程序完全跳出循環,結束WHILE循環的執行。WHILE語句也可以嵌套使用。

注意:如果嵌套了兩個或多個WHILE循環,內層的BREAK語句將導致退出到下一個外層循環。首先運行內層循環結束之後的所有語句,然後下一個外層循環重新開始執行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved