1、如,我知道某条记录中的某个字段中一定含有字母ab,但不知道具体在什么位置,现在,我想把这个ab替换为cd,怎么实现?--------------- update t set 字段 = replace(字段,'ab','cd') where PATINDEX('%ab%', 字段)>0 2、我想在某条记录中某个varchar字段的最后面直接加上字符串'xyz',怎么实现?----------- update t set 字段 = 字段+'xyz' where 。(某条记录的条件 )
如果此字段的内容 不超过8000个字符,请用下面方法: update t set 字段 = cast(字段 as varchar(8000))+'xyz' where 。(某条记录的条件 )
上面的可以,如果你的条件是涉及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) */
来晚了,做个总结。 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这些问题都比较简单,上面的回答都是很经典的了
where PATINDEX('%ab%', 字段)>0 为什么要加个条件?
是啊,我也觉得没有必要。 下面的就可以了。update t set 字段 = replace(字段,'ab','cd')update t set 字段 = cast(字段 as varchar(8000))+'xyz'
update t set 字段 = replace(字段,'ab','cd') where PATINDEX('%ab%', 字段)>0
2、我想在某条记录中某个varchar字段的最后面直接加上字符串'xyz',怎么实现?-----------
update t set 字段 = 字段+'xyz' where 。(某条记录的条件 )
update t set 字段 = cast(字段 as varchar(8000))+'xyz' where 。(某条记录的条件 )
举个例子:
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)
*/
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这些问题都比较简单,上面的回答都是很经典的了
为什么要加个条件?
下面的就可以了。update t set 字段 = replace(字段,'ab','cd')update t set 字段 = cast(字段 as varchar(8000))+'xyz'