SQL Server 流程控制
流程控制语句:
BEGIN ... END | WAITFOR | GOTO |
WHILE | IF ... ELSE | BREAK |
RETURN | CONTINURE |
1.BEGIN ... END
BEGIN ... END语句用于将多个Transact-SQL语句合为一个逻辑块。当流程控制语句必须执行一个包含两条或两条以上的T-SQL语句的语句块时,使用BEGIN ... END语句。
1 BEGIN
2 {sql_statement ... }
3 END
2.IF
1 IF<条件表达式>
2 {命令行 | 程序块}
IF...ELSE
1 IF <条件表达式>
2 {命令行1 | 程序块1}
3 ELSE
4 {命令行2 | 程序块2}
代码:
1 declare @x int
2 set @x=4
3 if @x%2=0
4 print '@x 是偶数'
5 else
6 print '@x 是奇数'
效果图:
3.CASE
1 CASE input_expression
2 WHEN when_expression THEN result_expression
3 [... n]
4
5 ELSE else_result_expression
6
7 END
代码:
1 use Practice
2 go
3 select *,备注=case
4 when Sex='girl' then '女'
5 when Sex='boy' then '男'
6 else '不识别'
7 end
8 from Info_Stu
效果:
4.WHILE
代码:
1 DECLARE @n int,@sum int
2 set @n=1
3 set @sum=0
4 while @n<=10
5 begin
6 set @sum=@sum+@n
7 set @n=@n+1
8 end
9 print @sum
效果:
5.WHILE...CONTINUE...BREAK
代码:
1 set @sum=0
2 while @x<10
3 begin
4 set @x=@x+1
5 if @x%2=0
6 begin
7 set @sum=@sum+@x
8 end
9 else
10 continue
11 end
12 print @sum
效果:
6.RETURN
RETURN语句用于查询或过程中无条件退出。RETURN语句可在任何时候用于从过程、批处理或语句块中退出,位于RETURN之后的语句不会被执行。
代码:
1 DECLARE @X INT
2 set @x=3
3 if @x>0
4 print'遇到return之前'
5 return
6 print'遇到return之后'
效果:
7.GOTO
GOTO命令用来改变程序执行的流程,使程序跳转到标识符指定的程序行再继续往下执行。
语法格式如下:
GOTO 标识符
标识符需要在其名称后加上一个冒号“:”。例如,“33:”,“loving:”
1 declare @x int
2 select @x=1
3 loving:
4 print @x
5 select @x=@x+1
6 while @x<=3 goto loving
效果:
8.WAITFOR
WAITFOR指定触发器、存储过程或事务执行的时间、时间间隔或事件;还可以用来暂时停止程序的执行,直到所设定的等待时间已过才继续往下执行。
语法格式如下:
WAITFOR {delay<'时间'> | TIME<'时间'>}
其中,“时间”必须为DATETIME类型的数据,如 11:15:27,但不能包括日期
delay:表示延时;
time:表示定时。
代码:
1 waitfor delay '00:00:05'
2 print '祝你生日快乐!'
效果:
菜鸟一枚,但有一颗不断进取的心;
兴趣所至,相信自己终会成功!!!!!
加油,imstrive