在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