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 系統會根據程式執行的結果返回一個內定值