sql怎么批量替换字段里的部分字符串的
方法一:varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。
1
|
update 表名 set 字段名= replace ( cast (与前面一样的字段名 as varchar (8000)) , '原本内容' , '想要替换成什么' ) |
方法二:
1
|
update [表名] set 字段名 = replace (与前面一样的字段名, '原本内容' , '想要替换成什么' ) |
方法三(此方法既可用于删除某一列字段中的某部分字符,也可用于替换某一列字段中的某部分字符)
update Table_Name set Column_Name=replace(Column_Name,substring(Column_Name,Start,Length),'Replace_Content') --Start 是要替换的字符开始的位置 --Lenght 要替换字符的长度
注:与stuff函数的不同
1、作用
stuff函数用于删除指定长度的字符,并在指定的起点处插入另一组字符。
2、语法
STUFF ( character_expression , start , length ,character_expression )
3、示例
以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位 置插入第二个字符串,从而创建并返回一个字符串
SELECT STUFF('abcdef', 2, 3, 'ijklmn') GO
下面是结果集
aijklmnef
4、参数 character_expression
一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。
start
一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个 character_expression长,则返回空字符串。start 可以是 bigint 类型。
length
一个整数,指定要删除的字符数。如果 length 比第一个 character_expression长,则最多删除到最后一个 character_expression 中的最后一个字符。length 可以是 bigint 类型。
5、返回类型 如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。
6、备注 如果结果值大于返回类型支持的最大值,则产生错误。
stuff函数用于删除指定长度的某个字符,而我刚刚写的语句则可以用来删除某列中字段的某一部分,只需把Replace_Content设为空即可
方法四:
update Table_Name set Column_Name=replace(Column_Name,'Content','Replace_Content')
这段语句就可以用来代替某个特定的字符,用Replace_Content代替Content。
start 可用charindex函数。
如:查找字符串中“你好”的位置
执行:
1
|
select charindex( '你好' , '2432你好dsfasdf' ) |
如果您的问题还未解决可以联系站长付费协助。
有问题可以加入技术QQ群一起交流学习
本站vip会员 请加入无忧模板网 VIP群(50604020) PS:加入时备注用户名或昵称
普通注册会员或访客 请加入无忧模板网 技术交流群(50604130)
客服微信号:15898888535
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若内容侵犯了原著者的合法权益,可联系站长删除。