在sqlserver的Sql语句里,如何实现查找某个字段的内容,匹配第一个出现的关键词,并替换它。我们知道Sqlserver支持replace和CHARINDEX函数,我们就用这两个内置函数实现。
需求语句如下:
update a set content=replace(content,'替换词old','替换词new')
内容里面有多个‘替换词old',请问如何只替换第一个匹配项?
实现语句:
//写法一
update a set
content=replace(content,'替换词old','替换词new') WHERE CHARINDEX('替换词old',content)=1
//写法二
update a set
content=stuff(content,charindex('替换词old',content),len('替换词old'),'替换词new')
//写法三 id是主键
update a
set content=replace(content,'替换词old','替换词new')
where id=(select top 1 id from a where charindex('替换词old',content)>0) order by id
上面三种sql语句写法,都可实现在字段中替换第一个匹配的关键词。
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/1075.html





















