Qu'est-ce qui ne va pas avec cette boucle imbriquée en SQL
j'ai eu une situation étrange aujourd'hui en faisant un code sql unique. Cette boucle imbriquée ne semble pas fonctionner la boucle externe: elle imprime (0,0),(0,1),(0,2) et (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
est-ce que je manque quelque chose de flagrant?
18
demandé sur
edosoft
2010-01-07 16:32:52
3 réponses
Vous ne réinitialisez pas votre J var pour la prochaine itération
set @i = @i + 1
set @j = 0
35
répondu
almog.ori
2010-01-07 13:34:33
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
le résultat original est 0/0 0/0 0/1 0/2 1/3 2/3
Eh bien, la réponse ci-dessus, il suffit d'ajouter le code pour plus de détails, lol~
0
répondu
Chjquest
2012-04-20 13:15:46