9.4 SQL Server循环


 

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的原因。

 
分类: SQL Server

posted on 2025-04-21 11:47  漫思  阅读(12)  评论(0)    收藏  举报

导航