SQL SERVER中的流程控制语句

本文介绍了SQL SERVER中的流程控制语句,包括Begin End、If...Else、If...Exists、Case...When、循环和跳转语句。通过实例解析了各语句的语法和应用场景,帮助理解SQL SERVER中的逻辑控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

               


 流程控制语句


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


1.Begin End语句


封装了多个T-SQL语句组合,将他们组成一个单元来处理。一般在条件查询或者循环等控制流程语句中,要查询满足特定条件的操作时会用到。Begin……end可以嵌套使用。


语法如下:

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


例子

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

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或者falseElse是可选的,最简单的if语句没有else部分


3.检测语句


If……exists语句时用来检测数据是否存在,当然了我们也可以通过检测匹配行count(*)来实现,但是没有if……exists效果好。因为如果只要找到第一条匹配的数据的话,服务器就会停止检测


语法规则

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语句或者程序块>breakcontinue<sql语句或者程序块>end

例子

--计算1+2+3……100的和declare @i int,@small intselect @i=1,@small=0while @i<=100   --判断的条件beginset @small =@small +@i set @i=@i+1continueendprint '1+2+3……100的和是'print @small


6.跳转语句


使用goto语句可以改变程序的流程,让程序自动跳到我们要执行的程序行

语法规则:

Goto标识符:

例子

--计算1+2+3……100的和declare @i int,@small intselect @i=1,@small=0while @i<=100   --判断的条件beginset @small =@small +@i set @i=@i+1goto wodecontinueendprint '1+2+3……100的和是'print @smallwode:print '我跳出来了'


小结:


这些语句时我们在学习SQL SERVER中会经常遇到的,其实也不难,与我们平常学习的编程语言中的控制结构相同,只不过是格式可能的略作修改,只要尝试下,找几个例子练一下即可。


 


           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值