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

流程控制语句

1.Begin End语句

封装了多个T-SQL语句组合,将他们组成一个单元来处理。Begin……end可以嵌套使用。

语法如下:

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

2.判断语句

语法如下:

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

例子:Else是可选的,最简单的if语句没有else部分

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

3.检测语句

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

if [not]exists (select 查询语句)
    <命令行或语句块>
    else <条件表达式>
    <命令行或语句块>
--检查学号为01的学生是否存在
if exists (select * from StudentInfo where stuid='01')
    print '这个学生存在'
    print '这个学生不存在'

4.多分支判断语句

Case……when结构提供比if……else结构更多的选择和判断机会

case<算术表达式>
    when<算术表达式>then<运算符>
    when<算术表达式>then<运算符>
    [else<算术表达式>]
    when<算术表达式>then<运算符>
    when<算术表达式>then<运算符>
    [else<算术表达式>]
--选择某一条件
select money=
      when(money<20) then '太少了'
      when(money>20) then '太多了'
      else '还行吧'
from StudentInfo 

5.循环语句

可以重复执行sql语句或者要执行的语句块,只要指定的条件成立即可。

  • Break命令让程序完全跳出循环语句,结束while命令
  • continue是让命令继续返回执行
  • while <条件表达式>
        begin
            <sql语句或者程序块>
            break
            continue
            <sql语句或者程序块>
    
    --计算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
    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
    print '1+2+3……100的和是'