高手指点,关于数据插入
现在有表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