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

如何修改数据库表,如字段有值就追加,没有就替换???
修改数据库表,
表A1
name   v1  v2    v3
aaaa   a   NULL    a
bbbb   b   b     b
aacc   a   c     空字符


我想更新v1,v2,v3字段,条件:name like 'aa'
另外,如修改字段时已有值了就在后面追加,为NULL或为空字符时,直接替换,


如:更新name like 'aa'的记录的v1,v2,v3字段改为"o",按上面的条件应修改如下:
name   v1    v2   v3
aaaa   ao    o    ao
bbbb   b     b    b
aacc   ao    co    o

------解决方案--------------------


update A1 set 
                 V1=case when CHARINDEX('dd',isnull(V1,''))>0 then V1 when isnull(V1,'')='' then isnull(V1,'')+'dd' else isnull(V1,'')+',dd' end ,
 V2=case when CHARINDEX('dd',isnull(V2,''))>0 then V2 when isnull(V2,'')='' then isnull(V2,'')+'dd' else isnull(V2,'')+',dd' end ,
 V3=case when CHARINDEX('dd',isnull(V3,''))>0 then V3 when isnull(V3,'')='' then isnull(V3,'')+'dd' else isnull(V3,'')+',dd' end 
                 where name like '%aa%'