首页 > 数据库 >9.4 SQL Server循环

9.4 SQL Server循环

时间:2023-01-30 10:47:27浏览次数:46  
标签:语句 示例 counter Server BREAK WHILE 循环 SQL 9.4

SQL Server循环

目录

简介

WHILE语句是一个控制流语句,它允许重复执行语句块,只要指定的条件为TRUE。

WHILE

语法:

WHILE Boolean_expression   
BEGIN
    语句或语句块--如果是单个语句则可以省略BEGIN...END,
END

如果在进入循环时Boolean_expression的计算结果为FALSE,则不会执行WHILE循环内的语句。

WHILE循环内,必须更改一些变量的值,以使Boolean_expression在某些点返回FALSE。否则,循环将会是一个死循环。

注意,如果Boolean_expression包含SELECT语句,则必须将其括在括号中。

要退出循环,可以使用BREAK语句。要跳过循环的当前迭代并开始新的迭代,可以使用CONTINUE语句。

示例

以下示例说明了如何使用WHILE语句打印从1到5的数字:

DECLARE @counter INT = 1;

WHILE @counter <= 5
BEGIN
    PRINT @counter;
    SET @counter = @counter + 1;
END

输出:

1
2
3
4
5

示例中:

  • 首先,我们声明了@counter变量,并将其值设置为1。
  • 然后,在WHILE语句的条件下,我们检查@counter是否小于或等于5。如果不是,我们打印出@counter并将其值增加一。经过五次迭代后,@counter为6,这导致WHILE子句的条件求值为FALSE,循环停止。

要了解如何使用 WHILE 循环逐行处理,请查看后面的游标教程。

BREAK

简介

要退出循环的当前迭代,可以使用BREAK语句。
语法:

WHILE Boolean_expression
BEGIN
    -- 语句
   IF condition
        BREAK;
    -- 其他语句    
END

在此语法中,一旦满足IF语句中指定的条件,BREAK语句将立即退出WHILE循环。将跳过BREAK和END关键字之间的所有语句。

假设我们在另一个WHILE循环中嵌套了一个WHIL循环:

WHILE Boolean_expression1
BEGIN
    -- statement
    WHILE Boolean_expression2
    BEGIN
        IF condition
            BREAK;
    END
END

在这种情况下,BREAK语句只退出WHILE语句中最内层的循环

注意,BREAK语句只能在WHILE循环内使用。IF语句通常与BREAK语句一起使用,但不是必需的。

示例

以下示例说明了如何使用BREAK语句:

DECLARE @counter INT = 0;

WHILE @counter <= 5
BEGIN
    SET @counter = @counter + 1;
    IF @counter = 4
        BREAK;
    PRINT @counter;
END

输出:

1
2
3

CONTINUE

简介

CONTINUE语句停止循环的当前迭代并开始新的迭代。
语法:

WHILE Boolean_expression
BEGIN
    -- 代码
    IF condition
        CONTINUE;
    -- 如果满足条件,将跳过代码
END

在此语法中,一旦condition计算为TRUE,循环的当前迭代就会停止。循环的下一次迭代将继续,直到Boolean_expression的计算结果为FALSE。

BREAK语句类似,CONTINUE语句通常与IF语句结合使用。注意,这不是强制性的。

示例

DECLARE @counter INT = 0;

WHILE @counter < 5
BEGIN
    SET @counter = @counter + 1;
    IF @counter = 3
        CONTINUE;	
    PRINT @counter;
END

输出:

1
2
4
5

在WHILE循环中,我们在每次迭代中@counter的值加1。如果@counter3,则跳过使用CONTINUE语句打印值。这就是为什么在输出中,没有看到数字3的原因。

标签:语句,示例,counter,Server,BREAK,WHILE,循环,SQL,9.4
From: https://www.cnblogs.com/michaelshen/p/17074752.html

相关文章

  • 9.3 SQL Server IF ELSE
    SQLServerIFELSE目录SQLServerIFELSE简介IF语句示例IFELSE语句示例:嵌套IF…ELSE简介IF...ELSE语句是一种控制流语句,允许根据指定的条件执行或跳过语句块。IF......
  • 9.5 SQL Server游标
    SQLServer游标(CURSOR)目录SQLServer游标(CURSOR)简介什么是数据库游标SQLServer游标生命周期示例简介SQL基于集合进行操作,例如,SELECT语句返回一组称为结果集的行。但......
  • 9.6 SQL Server异常处理
    SQLServer异常处理目录SQLServer异常处理TRYCATCH简介CATCH块中的函数嵌套的TRYCATCH简单示例在事务中使用TRYCATCH的示例THROW简介示例A)以下示例使用THROW语句引......
  • 8.3 SQL Server非聚集索引
    SQLServerNon-ClusteredIndexes(非聚集索引)目录SQLServerNon-ClusteredIndexes(非聚集索引)简介使用SQLServerCREATE[NONCLUSTERED]INDEX创建非聚集索引示例A)使用C......
  • 8.4 SQL Server唯一索引
    SQLServer唯一索引(UniqueIndex)目录SQLServer唯一索引(UniqueIndex)简介示例A)创建包含一列的唯一约束B)创建包含多列的唯一约束SQLServer唯一索引与NULL唯一索引(Uniquei......
  • 8.5 SQL Server包含列索引
    SQLServer索引与包括的列目录SQLServer索引与包括的列简介创建包含列的索引的语法简介本文使用sales.customers表作为示例下面语句在email列创建唯一约束:CREATEU......
  • 8.6 SQL Server筛选索引
    SQLServer筛选索引目录SQLServer筛选索引简介示例筛选索引的优点简介如果使用得当,非聚集索引可以大大提高查询性能。然而,非聚集索引的好处是有代价的:存储和维护。......
  • 8.7 SQL Server计算列上的索引
    SQLServer计算列上的索引目录SQLServer计算列上的索引简介计算列索引的要求简介有如下客户表:查找居住在garry.espinoza的客户:SELECTfirst_name,last......
  • 让Windows Server 2008r2 IIS7.5 ASP.NET 支持10万并发请求
    由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从而出现了上面的错误。为了避免这样的错误,我们根据相关文档调整了......
  • docker mysql
    dockerpullmysqldockerrun-itd--namemysql-p3307:3306-eMYSQL_ROOT_PASSWORD=123456mysql--character-set-server=utf8mb4--collation-server=utf8......