T-SQL控制语句

 

语句功能
BEGIN...END定义语句块
IF...ELSE

条件选择语句,执行条件成立时,执行IF后的语句;

否则执行ELSE后的语句

CASE分支处理语句
GOTO无条件转移
WHILE循环语句
BREAK循环跳出语句
CONTINUE重新启用循环语句
WAITFOR设置语句执行的延期时间
RETURN无条件退出语句

 

(1)IF...ELSE

IF 布尔表达式

     语句块1

     语句块2

     。。。

ELSE

     语句块1

     。。。

 

【例】如果存在有大于24的数据打印‘存在’,否则打印‘不存在大于24'’

 

DECLARE @age int,@message varchar(100)
SET @age=24
IF EXISTS(SELECT * FROM dbo.student WHERE sage>@age)
    BEGIN
     PRINT '存在'
    END
ELSE
  BEGIN
   SET @message='不存在大于24'
   PRINT @message
  END
 

 

 

(2)CASE

CASE

    WHEN 布尔表达式 THAN 表达式

    ...

    [ELSE 表达式]

END

 

 

 

SELECT sno,sname,'sdept'=
        CASE sdept
            WHEN 'C1' THEN '第1班'
            WHEN 'C2' THEN '第2班'
            WHEN 'C3' THEN '第3班'
            ELSE '其他班'
         END
 FROM dbo.student
 

 

 

(3)GOTO

 将程序的流程控制无条件转移到用户指定的标号处,而不执行goto语句和标号之间的语句

格式:

 标签:

 ...

 GOTO 标签

 

【例】求1+2+3+...+100的和

 

DECLARE @i int, @sum int
SET @i=1
SET @sum=0
BEG:
  IF(@i<=100)
   BEGIN
     SET @sum=@sum+@i
     SET @i=@i+1
     GOTO BEG
 END
PRINT @sum
   

 

 

 

(4)WHILE ,BREAK,CONTINUE

WHILE 布尔表达式

     SQL语句

 [BREAK]

     SQL语句

 [CONTINUE]

     SQL语句

 

【列】求1+2+3+...+100的和

 

DECLARE @i int, @sum int
SET @i=1
SET @sum=0
WHILE @i>0
  BEGIN 
    IF @i>100
     BEGIN 
       SELECT '1到100的和'=@sum
       BREAK
     END
    ELSE
      SET @sum=@sum+@i
      SET @i=@i+1
  END
   

 

 

(5)WAITFOR 

WAITFOR

 [

   DELAY '时间'|

   TIME   '时间'

DELAY子句指定等待的时间间隔,最多为24小时,

TIME子句指定具体时间点,但是TIME不能指点日期,时间参数为datetime类型,格式为hh:mm:ss

 

【例】设置在10秒后执行查询任务

 

USE dbtest     
BEGIN 
 WAITFOR
   DELAY '00:00:10'
   SELECT * FROM dbo.student
END
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值