流程控制语句
1.Begin End语句
封装了多个T-SQL语句组合,将他们组成一个单元来处理。Begin……end可以嵌套使用。
语法如下:
begin
--
end
例子
begin
--
select * from StudentInfo
update StudentInfo set money =50
end
2.判断语句
语法如下:
if<条件表达式>
--
else<条件表达式>
--
例子:Else是可选的,最简单的if语句没有else部分
--declare 是声明的意思
declare @money int
select @money=money
from StudentInfo
where stuid ='01'
if @money >20
print '钱太多了'
else
print '钱太少了'
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结构更多的选择和判断机会
规则一
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
break
continue
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语句可以改变程序的流程,让程序自动跳到我们要执行的程序行
例子
--计算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 '我跳出来了'