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就没有往下执行了,要让它继续向下执行,达到我的效果该怎么处理呢?
展开
 我来答
ssplus
2016-07-09 · TA获得超过112个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:126万
展开全部
很简答啊,在第二段前面加一行
set @i='201601'

你现在为什么输出到201605就没了,我们来看看这个输出前后发生了什么。
首先定位到print @i这一行,输出201605,那么现在i是201605,然后set @i=@i+1,i就变成201606了,然后回到while,不执行,跳出循环,到第二段又是while @i<='201605',那么现在i是201606,就不执行了,所以到201605就没了,所以你要在跳到第二段前重置i的值
HJ_3000
2016-07-08 · TA获得超过563个赞
知道小有建树答主
回答量:1264
采纳率:78%
帮助的人:54.4万
展开全部
第一个end后加上
set @i='201601'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式