SQL server 中 return,break和continue的使用及例子

1、continue:

重新开始 WHILE 循环。在 CONTINUE 关键字之后的任何语句都将被忽略。
例子:计算1-10的偶数和

DECLARE @SUM INT, @I INT
SET @SUM=0
SET @I =1
WHILE (@I <=10)
    BEGIN
        IF (@I % 2 =1)
            BEGIN 
                SET @I = @I +1
                CONTINUE
            END
        ELSE 
            BEGIN 
                SET @SUM = @SUM +@I
                SET @I = @I+1
            END
        END

PRINT  '1-10的偶数和:' + CAST(@Sum as varchar(5))
GO

输出: 1-10的偶数和:30

其实这里的continue写不写出来的答案都是正确的。

2、break:

退出 WHILE 或 IF…ELSE 语句中最里面的循环。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。IF 测试通常会启动 BREAK,但并不总是如此。
例子:遇到5就break了,退出了循环,所以输出值是5

DECLARE  @I INT
SET @I =1
WHILE (@I <=10)
    BEGIN
        IF (@I=5)
            BEGIN 
                BREAK
            END
        ELSE 
            BEGIN 
                SET @I = @I+1
            END
        END

PRINT  '@I 的值:' + CAST(@I as varchar(5))
GO

输出:@I 的值:5

3、return

从查询或过程中无条件退出。可在任何时候用于从过程、批处理或语句块中退出。****RETURN 之后的语句是不执行的
例子:return后,在批处理里面的语句PRINT ‘@I 的值:’ + CAST(@I as varchar(5))都不输出了,只输出后面再批处理后面的print

DECLARE  @I INT
SET @I =1
WHILE (@I <=10)
    BEGIN
        IF (@I=5)
            BEGIN 
                RETURN
            END
        ELSE 
            BEGIN 
                SET @I = @I+1
            END
        END

PRINT  '@I 的值:' + CAST(@I as varchar(5))
GO
PRINT '@@@@批处理后代码@@@@'

输出:@@@@批处理后代码@@@@

你可能感兴趣的:(SQL)