SQL字符替换函数replace和stuff的使用及区别 ================================================= 1.replace(字符串表达式1,字符串表达式2,字符串表达式3): 用字符串表达式3替换字符串表达式1中出现的所有字符串表达式2的匹配项。返回新的字符串。 例如:select replace('abcttabchhabc','abc','123') 返回 123tt123hh123 总结:replace()函数可以多次替换,只要是在字符串表达式1中有字符串表达式2的出现,最后都会被替换成字符串表达式3. 2.stuff(字符串表达式1,开始位置,长度,字符串表达式2): 在字符串表达式1中在指定的开始位置删除指定长度的字符,并在指定的开始位置处插入字符串表达式2。返回新字符串。 例如:select stuff('abcdef',2,2,'123') 返回 a123def 总结:stuff()函数只能一次性替换字符串表达式1中连续长度的字符串,不能循环替换。 ================================================== 最后,我发现这函数对ntext数据库类型会报错! 再查资料,果真如此!以下是解决的方法: UPDATE 表 SET 字段=REPLACE(cast(字段 AS varchar(8000)),'被替换的内容','将要替换成的内容') 说到底其实就是将ntext类型转化为函数可接受的类型,如上面的varchar类型。 varchar(8000)是字段类型。8000是个很猛的字段,可以根据自己的实际情况改动!
ntext用法: UPDATE 表 SET content=REPLACE(cast(content AS varchar(8000)), 'generic','')
varchar用法:UPDATE 表 SET c1 = STUFF(c1, CHARINDEX('</title><style>', c1), LEN(c1), '') |