日期:2014-05-18  浏览次数:20401 次

高手指点,关于数据插入
现在有表A如下:
dm     xm1     tot1……     xm2     tot2……
1
1
1
1
2
2
2
2
3
3
3
3
.
.
.

要插入a1,a2,a3,b1,b2,b4,b9后成为下面这个样子
dm     xm1     tot1……     xm2     tot2……
1       a1                           b1
1       a2                           b2
1       a3                           b4
1                                     b9
2       a1                           b1
2       a2                           b2
2       a3                           b4
2                                     b9
3       a1                           b1
3       a2                           b2
3       a3                           b4
3                                     b9
.       .                             .
.       .                             .
.       .                             .

------解决方案--------------------
declare @i int,@dm int
select @i=1,@dm=0
update a set xm1=(case @i when 4 then ' ' else 'a '+rtrim(@i) end),
xm2=(case @i when 4 then 'b9 ' when 3 then 'b4 ' else 'b '+rtrim(@i) end),
@i=(case when dm=@dm then @i+1 else 1 end),@dm=dm
---------------------------
select * from a
-------------------
1 a1 b1
1 a2 b2
1 a3 b4
1 b9
2 a1 b1
2 a2 b2
2 a3 b4
2 b9
3 a1 b1
3 a2 b2
3 a3 b4
3 b9