sqlsever2008 两个循环语句如何连续执行
declare@ivarchar(6)set@i='201601'while@i<='201605'beginprint@iset@i=@i+1endwhile@i<='...
declare @i varchar(6)
set @i='201601'
while @i<='201605'
begin
print @i
set @i=@i+1
end
while @i<='201605'
begin
print @i
set @i=@i+2
end
语句如上,现在输出的结果是201601 201602 201603 201604 201605,
我想要的结果是 201601 201602 201603 201604 201605 201601 201603 201605。
我这个语句执行到了第一个end就没有往下执行了,要让它继续向下执行,达到我的效果该怎么处理呢? 展开
set @i='201601'
while @i<='201605'
begin
print @i
set @i=@i+1
end
while @i<='201605'
begin
print @i
set @i=@i+2
end
语句如上,现在输出的结果是201601 201602 201603 201604 201605,
我想要的结果是 201601 201602 201603 201604 201605 201601 201603 201605。
我这个语句执行到了第一个end就没有往下执行了,要让它继续向下执行,达到我的效果该怎么处理呢? 展开
展开全部
很简答啊,在第二段前面加一行
set @i='201601'
你现在为什么输出到201605就没了,我们来看看这个输出前后发生了什么。
首先定位到print @i这一行,输出201605,那么现在i是201605,然后set @i=@i+1,i就变成201606了,然后回到while,不执行,跳出循环,到第二段又是while @i<='201605',那么现在i是201606,就不执行了,所以到201605就没了,所以你要在跳到第二段前重置i的值
set @i='201601'
你现在为什么输出到201605就没了,我们来看看这个输出前后发生了什么。
首先定位到print @i这一行,输出201605,那么现在i是201605,然后set @i=@i+1,i就变成201606了,然后回到while,不执行,跳出循环,到第二段又是while @i<='201605',那么现在i是201606,就不执行了,所以到201605就没了,所以你要在跳到第二段前重置i的值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询