zoukankan      html  css  js  c++  java
  • 关于SQL while 循环嵌套 外部循环数据无法进入内部循环

    使用sql实现固定样式的输出

     

    declare @i int ,@j int, @k varchar(60) 
      set @i = 1 
      while   @i <= 12
        begin
            set @j = 1 
            while @j <= 5
            begin
               print '第'+CAST(@i AS varchar)+'排'+'第'+CAST(@j AS varchar)+'列';
               set @j=@j+1;
            end
        set @i=@i+1
     end

    关于SQL while 循环嵌套 外部循环数据无法进入内部循环

     

    作为SQL新手第一次写循环嵌套的办法,但是大家会发现一个问题,那就是变量@i总是不能进入第二个循环。

    declare @i int ,@j int, @k int 
      set @i = 1 
      set @k = 1
      set @j = 1  --注意 set @j=1 的位置, @j 是内部循环变量的初始变量。
      while   @i <= 12
        begin
            while @j <= 5
            begin
                set @k = @k +1
                set @j = @j +1
            end
        set @i=@i+1
     end

     那么解决问题的办法如下:

    declare @i int ,@j int, @k int 
      set @i =1 
      set @k=1
      while @i <=12
        begin
            set @j =1  --@j位置的调整,将其调整到第一循环的begin开的内部。
            while @j <=5
            begin
                set @k =@k +1
                set @j =@j +1
                exec(@sql)
            end
        set @i=@i+1
     end

    大家可以发现两端代码的不同之处,就是因为将 set @j=1 的位置进行了调整。

    事实上,解决SQL,while 嵌套循环外部循环变量不能进入内部循环的解决办法就是 将内部循环变量的初始变量设置要放在外部循环的begin内部

  • 相关阅读:
    Cocos 更新时反复杀进程,导致差异更新失效的Bug
    Cocos 编译android-studio
    Could not resolve all dependencies for configuration ':classpath'
    MAC Gradle 下载的问题
    命令行创建 keystore
    应用间共享文件 FileProvider
    Android jks 签名文件 生成
    Gradle 离线 安装
    信息
    Cocos Lua的Touch 点击事件添加
  • 原文地址:https://www.cnblogs.com/tasunny/p/11977323.html
Copyright © 2011-2022 走看看