sql的循环,判断,跳转语句

流程控制语句

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 '我跳出来了'

你可能感兴趣的:(sql的循环,判断,跳转语句)