MS-SQL 控制語句

來源:互聯網
上載者:User

 BEGIN…END

其文法如下:BEGIN<命令列或程式塊>ENDBEGIN…END用來設定一個程式塊,將在BEGIN…END內的所有程式視為一個單元執行BEGIN…END經常在條件陳述式,如IF…ELSE中使用。
在BEGIN…END中可嵌套另外的BEGIN…END來定義另一程式塊。

 

IF…ELSE

其文法如下:IF <條件運算式><命令列或程式塊>[ELSE [條件運算式]<命令列或程式塊>]

Note:如果不使用程式塊,IF或ELSE只能執行一條命令。IF…ELSE可以進行嵌套。

執行個體:

View Code

declare@x int,@y int,@z intselect @x=1,@y=2, @z=3if@x>@y  print'x>y' --列印字串'x>y'else if@y>@zprint'y>z'    else print'z>y'運行結果如下z>y 注意:在Transact-SQL中最多可嵌套32級

 

 Case

CASE 命令有兩種語句格式:CASE <運算式>WHEN <運算式>THEN<運算式>… WHEN<運算式>THEN<運算式>[ELSE<運算式>]ENDCASEWHEN <條件運算式> THEN <運算式>WHEN <條件運算式> THEN <運算式>[ELSE <運算式>]END

執行個體:

View Code

第一種: SELECT CASE      WHEN price IS NULL THEN 'Not yet priced'     WHEN price < 10 THEN 'Very Reasonable Title'     WHEN price >= 10 AND price < 20 THEN 'Coffee Table Title'     ELSE 'Expensive book!'     END AS "Price Category",     CONVERT(varchar(20), title) AS "Shortened Title"from pubs.dbo.titlesORDER BY price第二種: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 StateNamefrom pubs.dbo.authorsORDER BY au_lname SELECT top 2 id, uid,cn,   CASE len(cn)      WHEN 3 THEN 'California'      WHEN 2 THEN 'Kansas'            END AS StateNamefrom conf_users
Update Case

use panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end

 

WHILE…CONTINUE…BREAK

其文法如下:WHILE <條件運算式>BEGIN<命令列或程式塊>[BREAK][CONTINUE][命令列或程式塊]ENDWHILE 命令在設定的條件成立時會重複執行命令列或程式塊。CONTINUE命令可以讓程式跳過CONTINUE 命令之後的語句,回到WHILE 迴圈的第一行命令。BREAK 命令則讓程式完全跳出迴圈,結束WHILE 命令的執行。WHILE 語句也可以嵌套。

執行個體:

While 嵌套

declare @x int, @y int, @c intselect @x = 1, @y=1while @x < 3beginprint @x --列印變數x 的值while @y < 3beginselect @c = 100*@ x+ @yprint @c --列印變數c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end

 

RETURN

RETURN [整數值]RETURN 命令用於結束當前程式的執行,返回到上一個調用它的程式或其它程式。在括弧內可指定一個傳回值。

 

 

View Code

declare @x int @y intselect @x = 1 @y = 2if x>yreturn 1elsereturn 2如果沒有指定傳回值,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.