update t set 字段 = replace(字段,'ab','cd') where charindex('ab',字段) > 0update t set 字段 = 字段+'xyz'

解决方案 »

  1.   

    1、如,我知道某条记录中的某个字段中一定含有字母ab,但不知道具体在什么位置,现在,我想把这个ab替换为cd,怎么实现?---------------
    update t set 字段 = replace(字段,'ab','cd') where  PATINDEX('%ab%', 字段)>0
    2、我想在某条记录中某个varchar字段的最后面直接加上字符串'xyz',怎么实现?-----------
    update t set 字段 = 字段+'xyz' where 。(某条记录的条件 ) 
      

  2.   

    但遗憾的是:第二个问题中,我的那个字段是text类型,而非varchar类型,请问,我怎样才能实现直接在其后面加上几个字母?谢谢
      

  3.   

    如果此字段的内容 不超过8000个字符,请用下面方法:
    update t set 字段 = cast(字段 as varchar(8000))+'xyz' where 。(某条记录的条件 )
      

  4.   

    上面的可以,如果你的条件是涉及text字段的,那么要用like,等于'xx',就用like 'xx',不能用=text 有专门的函数,writetext(readtext,updatetext),例子:
    举个例子:
    create table #T (des text)
    insert into #T
    select 'MabelDunn' union all
    select 'SullivanZuo'declare @str as varchar(100)
    DECLARE @textpointer VARbinary(16)
    SELECT @str = cast(des as varchar(100)),@textpointer = TEXTPTR(DES)  FROM #t
     WHERE #T.DES LIKE 'MaBELDUNN' 
    set @str = @str + 'xyz'
    writetext #t.des @textpointer @str
    select * from #T/*
    des                                     
    ----------------------------------------
    MabelDunnxyz
    SullivanZuo(2 row(s) affected)
    */
      

  5.   

    来晚了,做个总结。
    1、如,我知道某条记录中的某个字段中一定含有字母ab,但不知道具体在什么位置,现在,我想把这个ab替换为cd,怎么实现?---------------
    update t set 字段 = replace(字段,'ab','cd') where  PATINDEX('%ab%', 字段)>0
    2、我想在某条记录中某个varchar字段的最后面直接加上字符串'xyz',怎么实现?-----------
    update t set 字段 = 字段+'xyz' where 。(某条记录的条件 ) MorningTea(一勺抹茶)
    text 有专门的函数,writetext(readtext,updatetext),例子:
    举个例子:
    create table #T (des text)
    insert into #T
    select 'MabelDunn' union all
    select 'SullivanZuo'declare @str as varchar(100)
    DECLARE @textpointer VARbinary(16)
    SELECT @str = cast(des as varchar(100)),@textpointer = TEXTPTR(DES)  FROM #t
     WHERE #T.DES LIKE 'MaBELDUNN' 
    set @str = @str + 'xyz'
    writetext #t.des @textpointer @str
    select * from #T这些问题都比较简单,上面的回答都是很经典的了
      

  6.   

    where  PATINDEX('%ab%', 字段)>0
    为什么要加个条件?
      

  7.   

    是啊,我也觉得没有必要。
    下面的就可以了。update t set 字段 = replace(字段,'ab','cd')update t set 字段 = cast(字段 as varchar(8000))+'xyz'