打破使用的同时

时间:2017-04-05 15:46:35

标签: sql sql-server

如何从第二次开始休息,而不是从第一次开始?

declare @i int, @j int
select @i = 0, @j = 0
while @i < 3 begin ---first while  
    while @j < 3 begin
        select @i as i, @j as j ---second while  
        set @j = @j + 1
        break 
    end
    set @i = @i + 1
 set @j = 0
end

1 个答案:

答案 0 :(得分:0)

您编写的代码确实在SQL Server 2014上的第二个(内部循环)中突破。

  1. 将i和j设为0
  2. 进入外圈
  3. 进入内部循环
  4. 表示i和j(0,0)
  5. 增量j(现在为1)
  6. 打破内循环
  7. 在外循环中增加i(现在为1)
  8. 再次进入内循环(因为它没有突破外循环)
  9. 表示i和j(1,1)
  10. 增量j(现在为2)
  11. 打破内循环
  12. 在外循环中增加i(现在为2)
  13. 输入内部循环并表达i和j(2,2)
  14. 增量j(现在为3)
  15. 打破内循环
  16. 增量i(现在为3)
  17. 在外环上命中退出条件,因为@i不小于3
  18. 退出
  19. 这是你所期望的吗?您使用的是哪个版本的SQL Server? (我相信他们在这方面应该都是一样的)