id item
001 1
001 2
001 3
001 4
001 5
001 6
001 7
001 8
001 9
001 10
现在根据每3条切成1个组
用UPDATE语句或者其他办法(最好用UPDATE语句)把上面的数据更新如下:
001 1
001 2
001 3
002 1
002 2
002 3
003 1
003 2
003 3
004 1请高手指点!

解决方案 »

  1.   

    update Table1
    set ID=(Item-1)/3+1
      

  2.   


    declare @t table(id varchar(4),item int) 
    insert into @t values('001',1 )
    insert into @t values('001',2 )
    insert into @t values('001',3 )
    insert into @t values('001',4 )
    insert into @t values('001',5 )
    insert into @t values('001',6 )
    insert into @t values('001',7 )
    insert into @t values('001',8 )
    insert into @t values('001',9 )
    insert into @t values('001',10) update @t
    set
        id='00'+rtrim(1+(item-1)/3),item=case item%3 when 0 then 3 else item%3 end
        
    select * from @t
    /*
    id   item        
    ---- ----------- 
    001  1
    001  2
    001  3
    002  1
    002  2
    002  3
    003  1
    003  2
    003  3
    004  1
    */ 
      

  3.   

    update Table1
    set ID=(Item-1)/3+1,item=(Item-1)%3+1
      

  4.   

    set nocount on ;
    declare @t table(id varchar(4),item int) 
    insert into @t values('001',1 )
    insert into @t values('001',2 )
    insert into @t values('001',3 )
    insert into @t values('001',4 )
    insert into @t values('001',5 )
    insert into @t values('001',6 )
    insert into @t values('001',7 )
    insert into @t values('001',8 )
    insert into @t values('001',9 )
    insert into @t values('001',10) 
    update t
    set ID=right((Item-1)/3+1001,3),item=(Item-1)%3+1
    from @T tselect * from @Tid   item
    ---- -----------
    001  1
    001  2
    001  3
    002  1
    002  2
    002  3
    003  1
    003  2
    003  3
    004  1