SqlServer之代码块相关
轉(zhuǎn)載必需注明出處:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/sqlserver-codeblock/
一、go語(yǔ)句
Go語(yǔ)句是SqlServer中用來(lái)表示當(dāng)前代碼塊結(jié)束提交并確認(rèn)結(jié)果的語(yǔ)句。
Go語(yǔ)句不能和其他Sql命令卸載同一行上!
定義的局部變量作用域局限在定義它的代碼快中,如:在go語(yǔ)句前定義的變量在go語(yǔ)句后面則不可用。
如果一次執(zhí)行多個(gè)用go語(yǔ)句分開(kāi)的代碼塊時(shí),其中一個(gè)代碼塊出錯(cuò)不會(huì)影響其他代碼塊的執(zhí)行
?
二、Begin……End語(yǔ)句
T-Sql使用begin…end來(lái)指定代碼塊,但是在begin…end中聲明的變量在end結(jié)束之后還可以使用,直到遇見(jiàn)go語(yǔ)句
1 begin 2 declare @i int=0 3 select @i 4 end 5 select @i 6 go 7 select @i三、If……eles語(yǔ)句
SQL中的If…else語(yǔ)句和其他編程語(yǔ)言中的語(yǔ)法一樣,Sql中的if…else可以不用添加括號(hào)。另外SQL中還有if?exists…else和if?not?exists…else的用法
--創(chuàng)建臨時(shí)表@table 1 declare @table table( Id int)2 insert into @table values(1)3 if( 1=1) 4 select * from @table5 else6 select 17 8 if exists( select * from @table)9 begin 10 select * from @table 11 end 12 13 if not exists( select * from @table) 14 begin 15 select * from @table 16 end四、Case…When…then…else…end語(yǔ)句
Case具有兩種格式,簡(jiǎn)單Case函數(shù)和Case搜索函數(shù)。
1 --簡(jiǎn)單Case函數(shù) 2 CASE sex 3 WHEN '1' THEN '男' 4 WHEN '2' THEN '女' 5 ELSE '其他' END 6 --Case搜索函數(shù) 7 CASE WHEN sex = '1' THEN '男' 8 WHEN sex = '2' THEN '女' 9 ELSE '其他' END上面兩種格式可以實(shí)現(xiàn)相同的功能,但是簡(jiǎn)單的case相對(duì)來(lái)說(shuō)寫法比較方便,但是他的功能也就有些限制,如對(duì)sex寫判斷比較的時(shí)候就只能選擇case搜素函數(shù)方式。如下:
1 CASE WHEN sex > 1 THEN '男' 2 WHEN sex < 2 THEN '女' 3 ELSE '其他' END五、While語(yǔ)句
While循環(huán)主要是根據(jù)while后邊的值來(lái)判斷循環(huán)語(yǔ)句是否繼續(xù)執(zhí)行,如下:
1 declare @var_a int = 10 2 while( @var_a > 0) 3 begin 4 select @var_a 5 set @var_a=@var_a-1 6 endWhile循環(huán)語(yǔ)句通常和游標(biāo)(cursor)一塊使用如:
1 declare MyCursor cursor for select Name from #table --定義游標(biāo),游標(biāo)數(shù)據(jù)集來(lái)源臨時(shí)表#table2 open MyCursor --打開(kāi)游標(biāo)以供下面代碼使用3 fetch next from MyCursor into @name --將游標(biāo)指向的值賦值給臨時(shí)變量@name,游標(biāo)指向下一條數(shù)據(jù)4 while @@FETCH_STATUS=0 --判斷游標(biāo)是否到最后一條記錄5 begin6 select @name7 fetch next from MyCursor into @name8 end9 close MyCursor --關(guān)閉游標(biāo) 10 deallocate MyCursor -- 釋放最后的游標(biāo)引用時(shí)轉(zhuǎn)載于:https://www.cnblogs.com/ouyy/p/9854699.html
總結(jié)
以上是生活随笔為你收集整理的SqlServer之代码块相关的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Sql字符串函数(1)
- 下一篇: cad道路里程桩号标注_甲级设计院CAD