今天我遇到了一些奇怪的情况,做了一些一次性的sql代码。这个嵌套循环似乎不运行外部循环:它打印(0,0),(0,1),(0,2)和(0,3)
declare @i int, @j int
select @i = 0, @j = 0
while @i < 3 begin
while @j < 3 begin
select @i as i, @j as j
set @j = @j + 1
end
set @i = @i + 1
end
我错过了一些明显的东西吗?
答案 0 :(得分:36)
您没有为下一次迭代重置j var
set @i = @i + 1
set @j = 0
答案 1 :(得分:5)
您没有重置@j。
答案 2 :(得分:1)
declare @i int, @j int
select @i = 0, @j = 0 --<- Wrong place set @j
while @i < 3
begin
select @i, @j --<-test print, then you will know what happened~
--set @j = 0 --<- Right place to set @j
while @j < 3
begin
select @i as i, @j as j
set @j = @j + 1
end
set @i = @i + 1
end
原来的结果是 0/0 0/0 0/1 0/2 1/3 2/3
嗯,以上回答,只需添加代码以获取更多详细信息,lol~