流程控制语句

是指用来控制程序运行和流程分至点额命令。一般指的是逻辑计算部分的控制。

1.Begin End语句

封装了多个T-SQL语句组合,将他们组成一个单元来处理。

一般在条件查询或者循环等控制流程语句中,要查询满足特定条件的操作时会用到。Begin……end能够嵌套使用。

语法例如以下:

begin
--<sql语句或程序块>
end

样例

begin
--<sql语句或程序块>
select * from StudentInfo
update StudentInfo set money =50
end

2.推断语句

当满足某种特定条件的时候才运行的语句,通常就是我们所说的 If……else语句。通过做出推断。选择运行某条语句或语句块

语法例如以下:

if<条件表达式>
--<sql语句或程序块>
else<条件表达式>
-- <sql语句或程序块>

样例

--declare 是声明的意思
declare @money int
select @money=money from StudentInfo where stuid ='01'
if @money >20
print '钱太多了'
else
print '钱太少了'

当中<条件表达式>能够是各种表达式的组合。可是必须是true或者false。Else是可选的,最简单的if语句没有else部分

3.检測语句

If……exists语句时用来检測数据是否存在,当然了我们也能够通过检測匹配行count(*)来实现,可是没有if……exists效果好。由于假设仅仅要找到第一条匹配的数据的话。server就会停止检測

语法规则

if [not]exists (select 查询语句)
<命令行或语句块>
else <条件表达式>
<命令行或语句块>

样例

--检查学号为01的学生是否存在
if exists (select * from StudentInfo where stuid='01')
print '这个学生存在'
else
print '这个学生不存在'

4.多分支推断语句

Case……when结构提供比if……else结构很多其它的选择和推断机会。假设学习过编程语言的同学来说。我们应该见过这样的结构的语句。使用它能够非常方便的实现多分支推断,从而避免if……else的语句嵌套使用。

语法规则有两种

规则一

case<算术表达式>
when<算术表达式>then<运算符>
when<算术表达式>then<运算符>
[else<算术表达式>]
end

规则二

case
when<算术表达式>then<运算符>
when<算术表达式>then<运算符>
[else<算术表达式>]
end

样例

--选择某一条件
select money=
case
--对该条件进行选择分支推断
when(money<20) then '太少了'
when(money>20) then '太多了'
else '还行吧'
end
from StudentInfo

5.循环语句

能够反复运行sql语句或者要运行的语句块。仅仅要指定的条件成马上可

Break命令让程序全然跳出循环语句,结束while命令。continue是让命令继续返回运行

语法规则

while <条件表达式>
begin
<sql语句或者程序块>
break
continue
<sql语句或者程序块>
end

样例

--计算1+2+3……100的和

declare @i int,@small int
select @i=1,@small=0 while @i<=100 --推断的条件
begin
set @small =@small +@i
set @i=@i+1
continue
end
print '1+2+3……100的和是'
print @small

6.跳转语句

使用goto语句能够改变程序的流程,让程序自己主动跳到我们要运行的程序行

语法规则:

Goto标识符:

样例

--计算1+2+3……100的和

declare @i int,@small int
select @i=1,@small=0 while @i<=100 --推断的条件
begin
set @small =@small +@i
set @i=@i+1
goto wode
continue
end
print '1+2+3……100的和是'
print @small wode:
print '我跳出来了'

小结:

这些语句时我们在学习SQL SERVER中会常常遇到的,事实上也不难,与我们寻常学习的编程语言中的控制结构同样,仅仅只是是格式可能的略作改动。仅仅要尝试下,找几个样例练一下就可以。

最新文章

  1. Ios二维码扫描(系统自带的二维码扫描)
  2. mysql新建用户的方法
  3. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
  4. [iOS]利用通知实现监听系统键盘
  5. ZOJ 2625 Rearrange Them(DP)
  6. java新手笔记2 数据类型
  7. Maximum &amp; Minimum Depth of Binary Tree
  8. 在Android Studio 上安装Genymotion插件
  9. Weekly Contest 126
  10. Python开发爆破工具
  11. 微服务扩展新途径:Messaging
  12. JUnit单元测试代码
  13. Js调试中不得不知的Console
  14. CodeForces701E DFS
  15. Digital biquad filter
  16. 【IAP支付之三】苹果IAP安全支付与防范 receipt收据验证
  17. ANTS Performance Profiler和ANTS Memory Profiler
  18. [UE4]Math Expression计算数学公式,可以接受参数
  19. 五险一金 社保基数 住房公积金基数以及个税(By FlyElephant)
  20. 【转】Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法

热门文章

  1. Eclipse用法和技巧五:生成说明文档2
  2. OCP-1Z0-042-V12.39-47题
  3. Oracle 创建索引的基本规则总结
  4. 基于visual Studio2013解决C语言竞赛题之1052求根
  5. UVA 10201 Adventures in Moving - Part IV(dp)
  6. p类型最大可定义范围
  7. POJ 3321 Apple Tree DFS序+fenwick
  8. Android之后台服务判断本应用Activity是否处于栈顶
  9. Servlet和JSP读书笔记(三)之Cookie
  10. html中的rowspan和colspan