日期:2014-05-17  浏览次数:20779 次

如何批量把‘00’改成比前一行数据大于1的数字
现在有一个表tableAA


1 1 1 1 1 1 1 1 1 0 0
2 2 2 0 2 2 2 2 0 1 1
0 3 3 1 3 3 0 3 1 0 2
1 4 4 0 4 0 0 4 2 0 3
2 5 5 0 5 0 1 5 3 1 4
0 6 0 1 6 1 2 6 4 0 5
0 7 1 2 7 2 3 7 0 1 6
1 8 2 3 0 3 4 0 0 2 7
2 9 3 4 0 4 5 1 0 3 8
0 0 4 5 1 5 6 0 1 4 9
1 1 5 0 0 6 7 1 2 5 0
2 0 6 1 1 7 8 2 3 6 1
3 1 7 2 2 8 9 0 4 7 2
4 2 0 3 0 9 0 0 5 8 3
5 3 1 0 1 10 1 1 6 9 0

如何批量把‘0’改成比前一行数据大于1的数字
数据

------解决方案--------------------
update cloumn2=cloumn1+1 where cloumn2=0;
update cloumn3=cloumn2+1 where cloumn3=0;
…………
------解决方案--------------------
	declare @i   int,
        @sql varchar(max)
set @i=2
while  @i<=11
begin
   set @sql='update tableAA set cloumn'+ltrim(@i)+'=cloumn'+ltrim(@i-1)+'+1 where cloumn'+ltrim(@i)+'=0'
   EXEC(@sql)
   set @i=@i+1
end


是不是要这样效果