SqlServer之代码块

一、go语句

Go语句是SqlServer中用来表示当前代码块结束提交并确认结果的语句。

Go语句不能和其他Sql命令卸载同一行上!

定义的局部变量作用域局限在定义它的代码快中,如:在go语句前定义的变量在go语句后面则不可用。

如果一次执行多个用go语句分开的代码块时,其中一个代码块出错不会影响其他代码块的执行

 

二、Begin……End语句

T-Sql使用begin…end来指定代码块,但是在begin…end中声明的变量在end结束之后还可以使用,直到遇见go语句

折叠/展开
begin
declare @i int=0
select @i
end
select @i
go
select @i

三、If……eles语句

SQL中的If…else语句和其他编程语言中的语法一样,Sql中的if…else可以不用添加括号。另外SQL中还有if exists…else和if not exists…else的用法

折叠/展开
declare @table table( Id int)
insert into @table values(1)
if( 1=1)
    select * from @table
else
    select 1

if exists( select * from @table)
begin
    select * from @table
end

if not exists( select * from @table)
begin
    select * from @table
end

四、Case…When…then…else…end语句

Case具有两种格式,简单Case函数和Case搜索函数。

折叠/展开
--简单Case函数
CASE sex
         WHEN '1' THEN '男'
         WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
         WHEN sex = '2' THEN '女'
ELSE '其他' END

上面两种格式可以实现相同的功能,但是简单的case相对来说写法比较方便,但是他的功能也就有些限制,如对sex写判断比较的时候就只能选择case搜素函数方式。如下:

折叠/展开
CASE WHEN sex > 1 THEN '男'
         WHEN sex < 2 THEN '女'
ELSE '其他' END

五、While语句

While循环主要是根据while后边的值来判断循环语句是否继续执行,如下:

折叠/展开
declare @var_a int = 10
while( @var_a > 0)
begin
    select @var_a
    set @var_a=@var_a-1
end

While循环语句通常和游标(cursor)一块使用如:

折叠/展开
declare MyCursor cursor for select Name from #table --定义游标,游标数据集来源临时表#table
open MyCursor --打开游标以供下面代码使用
fetch next from MyCursor into @name --将游标指向的值赋值给临时变量@name,游标指向下一条数据
while @@FETCH_STATUS=0 --判断游标是否到最后一条记录
begin
    select @name
    fetch next from MyCursor into @name
end
close MyCursor --关闭游标
deallocate MyCursor -- 释放最后的游标引用时

 

本文转载:www.ncloud.hk/技术分享/sqlserver-codeblock/

本文作者:Journey&Flower

本文链接:https://www.cnblogs.com/JourneyOfFlower/p/15263148.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Journey&Flower  阅读(471)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 Not Found REOL
  2. 2 白色恋人 游鸿明
  3. 3 盛夏的果实 莫文蔚
  4. 4 以父之名 周杰伦
  5. 5 晴天 周杰伦
  6. 6 简单爱 周杰伦
  7. 7 东风破 周杰伦
  8. 8 稻香 周杰伦
  9. 9 爱在西元前 周杰伦
  10. 10 千里之外 费玉清-周杰伦
  11. 11 偏爱 张芸京
  12. 12 大海 张雨生
  13. 13 月亮惹的祸 张宇
  14. 14 雨一直下 张宇
  15. 15 过火 张信哲
  16. 16 隐形的翅膀 张韶涵
  17. 17 天下 张杰
  18. 18 当你孤单你会想起谁 张栋梁
  19. 19 清明雨上 许嵩
  20. 20 玫瑰花的葬礼 许嵩
  21. 21 断桥残雪 许嵩
  22. 22 城府 许嵩
  23. 23 等一分钟 徐誉滕
  24. 24 客官不可以 徐良_小凌
  25. 25 坏女孩 徐良_小凌
  26. 26 犯贱 徐良
  27. 27 菠萝菠萝蜜 谢娜
  28. 28 贝多芬的悲伤 萧风
  29. 29 睫毛弯弯 王心凌
  30. 30 我不是黄蓉 王蓉
  31. 31 秋天不回来 王强
  32. 32 今天你要嫁给我 陶喆,蔡依林
  33. 33 丁香花 唐磊
  34. 34 绿光 孙燕姿
  35. 35 求佛 誓言
  36. 36 十一年 邱永传
  37. 37 下辈子如果我还记得你 马郁
  38. 38 一千年以后 林俊杰
  39. 39 江南 林俊杰
  40. 40 曹操 林俊杰
  41. 41 背对背拥抱 林俊杰
  42. 42 会呼吸的痛 梁静茹
  43. 43 勇气 梁静茹
  44. 44 爱你不是两三天 梁静茹
  45. 45 红日 李克勤
  46. 46 星月神话 金莎
  47. 47 嘻唰唰 花儿乐队
  48. 48 穷开心 花儿乐队
  49. 49 六月的雨-《仙剑奇侠传》电视剧插曲 胡歌
  50. 50 一个人的寂寞两个人的错 贺一航
  51. 51 好想好想-《情深深雨濛濛》电视剧片尾曲 古巨基
  52. 52 情人 刀郎
  53. 53 冲动的惩罚 刀郎
  54. 54 西海情歌 刀郎
  55. 55 2002年的第一场雪 刀郎
  56. 56 红玫瑰 陈奕迅
  57. 57 浮夸 陈奕迅
  58. 58 爱情转移 陈奕迅
  59. 59 独家记忆 陈小春
  60. 60 记事本 陈慧琳
  61. 61 看我72变 蔡依林
  62. 62 寂寞在唱歌 阿桑
  63. 63 樱花草 Sweety
  64. 64 中国话 S.H.E
  65. 65 波斯猫 S.H.E
  66. 66 杀破狼-《仙剑奇侠传》电视剧片头曲 JS
  67. 67 Lydia F.I.R.
  68. 68 I Miss You 罗百吉_青春美少女.
盛夏的果实 - 莫文蔚
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 李焯雄

作曲 : Meyna Co

编曲 : 张佳添

也许放弃 才能靠近你 不再见你

你才会把我记起 时间累积

这盛夏的果实 回忆里寂寞的香气

我要试着离开你 不要再想你

虽然这并不是我本意

你曾说过 会永远爱我

也许承诺 不过因为没把握 别用沉默

再去掩饰什么 当结果是那么赤裸裸

以为你会说什么 才会离开我

你只是转过头 不看我

不要刻意说 你还爱我

当看尽潮起潮落 只要你记得我

你曾说过 会永远爱我 也许承诺

不过证明没把握 不用难过

不用掩饰什么 当结果是那么赤裸裸

其实不必说什么

才能离开我 起码那些经过 属于我

也许放弃 才能靠近你 不再见你

你才会把我记起 时间累积

这盛夏的果实 回忆里爱情的香气

我以为不露痕迹 思念却满溢

或许这代表了我的心

不要刻意说 你还爱我

当看尽潮起潮落 只要你记得我

如果你会梦见我 请你再抱紧我