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 '祝你生日快乐!'

效果:

 

posted @ 2015-09-02 17:01  imstrive  阅读(1246)  评论(0编辑  收藏  举报