SQL SERVER 流程控制语句

1、BEGIN……ELSE语句:通常包含在其他流程控制中;
示例:定义局部变量@number,如果@number的值小于5,则执行WHILE中的语句块;

   DECLARE @number INT;
   SELECT @number=0;
   WHILE @number<5
     BEGIN
       PRINT 'number=' + CONVERT(VARCHAR(10), @number)
       SET @number=@number+1
     END
   PRINT '循环过后number的值为' + CONVERT(VARCHAR(10), @number) 

这里写图片描述

2、IF……ELSE语句:
示例:IF……ELSE流程控制语句的使用;

 DECLARE @count INT;
  SELECT @count=10;
  IF @count>11
    PRINT 'count的值比10大。'
  ELSE
    PRINT 'count的值不大于10。'

这里写图片描述

3、CASE语句:多条件分支语句,有两种格式:
格式一示例:根据id的值给‘排序’赋值;

    USE test2  ---数据库名
    SELECT id,gender,
    CASE id
      WHEN 1 THEN '第一'  --如果id=1,则排序=第一;
      WHEN 2 THEN '第二'  --如果id=2,则排序=第二;
      ELSE '无'            --其他的id,排序=无;
    END AS '排序'
    FROM person

这里写图片描述

格式二示例:

   SELECT id,gender,
   CASE 
     WHEN id < 2 THEN '第二'
     WHEN id < 3 THEN '第一'
     ELSE '无'
   END AS '排序'
   FROM person

这里写图片描述

4、WHILE语句示例:

  DECLARE @count INT;
  SELECT @count=10;
  WHILE @count > 0
  BEGIN
   IF @count > 5
     BEGIN
       PRINT 'count等于'+CONVERT(VARCHAR(10),@count)+',大于5继续执行;';
       SELECT @count=@count-1;
       CONTINUE;
     END
   ELSE
     BEGIN
       PRINT 'count等于'+CONVERT(VARCHAR(10),@count)+',不大于5,循环结束;';
       BREAK;
     END
  END

  PRINT 'WHILE循环结束后,count的值为'+CONVERT(VARCHAR(10),@count);

这里写图片描述

5、GOTO语句:表示将执行留跳转到标签处;
示例:

  USE test2
  BEGIN
    SELECT id FROM person;
    GOTO jump
    SELECT gender FROM person; --第二条SELECT语句没有执行;
    jump:   
  END

6、WAITFOR语句:用来暂时停止程序的执行,直到所设定的等待时间已过或快到时才继续往下执行,延迟的时间格式为“HH:MM:SS”,在WAITFOR语句中不能指定日期,并且时间长度不能超过24小时;
–示例:10秒的延迟后执行SET语句(即10秒钟后才输出语句“520”);

    DECLARE @num VARCHAR(10);
    SET @num='520';
    BEGIN
      WAITFOR DELAY '00:00:10';
      PRINT @num;
    END;

7、RETURN语句:可在任何时候用于从过程、批处理或语句块中退出,RETURN之后的语句是不执行的;存储过程可向执行调用的过程或应用程序返回一个整数值,如“RUTURN 2”。除非另有说明,否则所有系统存储过程返回的值均为0,0表示成功,非0表示失败;

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值