DECLARE @i INT ,@j INT
SET @i=1
set @j=1
WHILE @i<4
BEGIN
PRINT 'satrt i:'+CAST(@i AS varchar)
WHILE @j<4
BEGIN
PRINT 'j:'+CAST(@j AS varchar)
SET @j=@j+1
END
set @i=@i+1
END
sql 嵌套while?
为什么第二次不执行了
写法问题呗,内层循环开始前,@j初始化了吗?
DECLARE @i INT ,@j INT SET @i=1 set @j=1 WHILE @i<4 BEGIN PRINT 'satrt i:'+CAST(@i AS varchar) WHILE @j<4 BEGIN PRINT 'j:'+CAST(@j AS varchar) SET @j=@j+1 END set @j=1 set @i=@i+1 END
你第一次的J是1,然后循环之后就是3+1,这个时候的结果已经不能满足你的WHIle条件了,所以你需要重新对J进行一次初始化。
是的,,我刚问了下同事,,他们一说我才发现。。多谢了。。
楼上的已是正解