sql中循环处理当前行数据和上一行数据相加减
以下事例,使用游标循环表#temptable中数据,然后让当前行和上一行中的argument1相加存放到当前行的argument2中,比较简单。
--droptable#temptable createtable#temptable ( argument1int, argument2int, argument3datetime ) declare@rowcountint,@argument1int,@argument2nvarchar(50),@argument3datetime set@rowcount=1 set@argument1=1 set@argument2=0 set@argument3=GETDATE() while(@rowcount<100) begin insertinto#temptable(argument1,argument2,argument3) values(@argument1,@argument2,@argument3) set@argument1=@argument1+datepart(day,@argument3) set@argument3=@argument3-1 set@rowcount=@rowcount+1 end --select*from#temptable declare@lastargument2int set@lastargument2=0 set@argument2=0 declare_cursorcursorfor(selectargument1from#temptable) open_cursor; fetchnextfrom_cursorinto@argument2 while@@fetch_status=0 begin update#temptable setargument2=@argument2+@lastargument2 wherecurrentof_cursor set@lastargument2=@argument2 fetchnextfrom_cursorinto@argument2 end close_cursor deallocate_cursor --select*from#temptable
问一个问题:
第一句fetchnextfrom_cursorinto@argument2这句为什么不能放在while循环的第一行,删除第二行呢?我记得自己当时在这里出错了,呵呵。
热门推荐
2 接春的祝福语简短
3 足球队祝福语简短
10 简短对公司的祝福语
11 钱包祝福语简短10字
12 给表弟的祝福语简短
13 别人生辰祝福语简短
14 妹妹生日祝福语简短唯美
15 宝宝满月写真祝福语简短
16 圣诞祝福语简短小学
17 简短霸气的考试祝福语
18 结婚喜庆的祝福语简短