表cata
aaa  eee  ccc  ddd
1    2    a    100
2    2    a    null
3    1    c    null
4    2    a    null
5    3    a    null
6    2    b    null
7    2    a    null
8    2    a    null
9    2    a    null我想把eee=2和ccc=a的ddd值按100往上加1效果是这样
aaa  eee  ccc  ddd
1    2    a    100
2    2    a    101
3    1    c    null
4    2    a    102
5    3    a    null
6    2    b    null
7    2    a    103
8    2    a    104
9    2    a    105

解决方案 »

  1.   

    update cata
    set ddd = isnull(ddd,0) + 100
    where eee = 2 and ccc = 'a'
      

  2.   

    晕,是加1
    update cata 
    set ddd = isnull(ddd,0) + 1
    where eee = 2 and ccc = 'a'
      

  3.   

    不好意思,更正一下
    declare @t table(aaa int,  eee int,  ccc varchar(2),  ddd  int)
    insert @t select
    1 ,   2    ,'a',    100  union select
    2 ,   2    ,'a',    null union select
    3 ,   1    ,'c',    null union select
    4 ,   2    ,'a',    null union select
    5 ,   3    ,'a',    null union select
    6 ,   2    ,'b',    null union select
    7 ,   2    ,'a',    null union select
    8  ,  2    ,'a',    null union select
    9  ,  2    ,'a',    null 
    declare @i int
    set @I = -1update @t 
    set ddd = @i,@i =isnull(ddd,0) + @i +1
    where eee = 2 and ccc = 'a'
    select * from @t
    /*
    aaa  eee  ccc  ddd 
    1    2    a    100 
    2    2    a    101 
    3    1    c    null 
    4    2    a    102 
    5    3    a    null 
    6    2    b    null 
    7    2    a    103 
    8    2    a    104 
    9    2    a    105
    */
      

  4.   

    --> 测试数据: #cata
    if object_id('tempdb.dbo.#cata') is not null drop table #cata
    create table #cata (aaa int,eee int,ccc varchar(1),ddd int)
    insert into #cata
    select 1,2,'a',100 union all
    select 2,2,'a',null union all
    select 3,1,'c',null union all
    select 4,2,'a',null union all
    select 5,3,'a',null union all
    select 6,2,'b',null union all
    select 7,2,'a',null union all
    select 8,2,'a',null union all
    select 9,2,'a',nullupdate a set ddd=(select 99+count(1) from #cata where aaa<=a.aaa and eee=2 and ccc='a') from #cata a where ddd is null and eee=2 and ccc='a'select * from #cata
    /*
    aaa  eee  ccc  ddd
    1    2    a    100
    2    2    a    101
    3    1    c    null
    4    2    a    102
    5    3    a    null
    6    2    b    null
    7    2    a    103
    8    2    a    104
    9    2    a    105
    */