sql替换字符
⑴ sql怎么批量替换字段里的字符串的
方法一:
varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。
update表名set字段名=replace(cast(与前面一样的字段名asvarchar(8000)),'原本内容','想要替换成什么')
方法二:
update[表名]set字段名=replace(与前面一样的字段名,'原本内容','想要替换成什么')
⑵ sql如何对某个字段做字符替换
REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
参数
'string_expression1'
待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。
'string_expression2'
待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。
'string_expression3'
替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
返回类型
如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
示例
下例用 xxx 替换 abcdefghi 中的字符串 cde。
SELECT REPLACE('abcdefghicde','cde','xxx')
GO
下面是结果集:
------------
abxxxfghixxx
(1 row(s) affected)
⑶ sql 替换 两特定字符(含特定字符)之间的字段
如果我说如果啊,如果是abc?def?ghi?jkl你打算怎么换是abc+jkl还是abc++jkl,当然如果没有这种情况算我没说。
还有你什么数据库啊,不同的数据库用到的函数也不是完全一样的。当然如果都是三位的那就简单了,如果不都是3位的,那在用下面的方法
比如定位中oracle用instr,sqlserver中用charindex
(1)定位,定位?的位置,不知道你的?是不是字符型的,我假设它是字符型的
oracle:instr('?',字段,1,1)(第一次出现问号的位置),instr('?',字段,-1,1)(最后一次出现问号的位置),如果只有两个问号也可以写成instr('?',字段,1,2)
sqlserver:charindex('?',字段,1)(第一次出现问号),len(字段)-(charindex('?',reverse(字段))-1)(最后一次出现问号),如果只有两个问号,可以写成charindex('?',字段,charindex('?',字段,1)+1)
(2)截取需要替换的字符串substring函数,这个二者基本差不多
(3)替换,二者也是大同小异(函数基本相同,但写法上有些区别),我就写一个。
oracle: select replace(字段,subter(字段,instr('?',字段,1,1),instr('?',字段,-1,1)),'+') from table
至于sqlserver的那就自己完成吧,oracle我的把握大一些,sqlserver需要试验才行,我这里可没有相关环境。
注:我忘了问号需不需要转译了,这个你自己试试看吧。
⑷ sql怎么替换字符串中的某个字符
replace(’stringtobechanged’,’keystringtobereplaced’,’stringforreplace’):字符串替换
select replace(’acezih’.’cez’,’bhr’) from al; abhrih
select replace(’acezih’.’czh’,’bhr’) from al; acezih
translate(’stringtobechanged’,’keycharactertobereplaced’,’charactersfroreplace’):字符逐个替换
select translate(’acezih’.’cez,’bhr’)from al; abhrih
select translate(’acezih’.’czh’,’bhr’) from al; abehir
⑸ SQL语句替换某表某字段中第几字符
用replace啊
replace(str,from_str,to_str)
在字符串
str
中所有出现的字符串
from_str
均被
to_str替换,然后返回这个字符串
⑹ SQL语句 如何实现替换字段中部分字符
方法一: update table_name set professional = ',演员,' where professional = ',-99 ,演员'
⑺ sql字符串替换
select id,stuff(name,1,6,'') as name from t_table
--stuff(列名,从第几个字符开始,长度,替换成什么)
--如上例,就是从第一个字符“第”开始,长度为6,也就是“第N(名字)”替换成空字符
--对于变长的。。那么这个。 就行了
select id,substring(name,charindex(')',name)+1,len(name)) as name from t_table
⑻ SQL如何将一列表中的字符替换成另外一个字符
可以参考这条语句:
update Node
set PhyName=‘摄氏度’
where NodeTypeID=224
类似这种情况,全都可以用以下格式处理:
update 表名
set 字段名=新的内容
where 条件
其中‘条件’可以是NodeTypeID=224这种,只要表中记录符合条件的,将会执行更新。
只要明白了这个,类似的情况都能解决了。
⑼ SQL中字符串的替换
select
id,stuff(name,1,6,'')
as
name
from
t_table
--stuff(列名,从第几个字符开始,长度,替换成什么)
--如上例,就是从第一个字符“第”开始,长度为6,也就是“第n(名字)”替换成空字符
--对于变长的。。那么这个。
就行了
select
id,substring(name,charindex(')',name)+1,len(name))
as
name
from
t_table
⑽ sql 替换某一位置字符
sql server 2005及以上版本可使用STUFF函数。
语法:
STUFF(character_expression,start,length,character_expression)
参数说明:
character_expression:一个字符数据表达式。character_expression可以是常量、变量,也可以是字符列或二进制数据列。
start:一个整数值,指定删除和插入的开始位置。如果start或length为负,则返回空字符串。如果start比第一个character_expression长,则返回空字符串。start可以是bigint类型。
length:一个整数,指定要删除的字符数。如果length比第一个character_expression长,则最多删除到最后一个character_expression中的最后一个字符。length可以是bigint类型。
返回类型
如果character_expression是受支持的字符数据类型,则返回字符数据。如果character_expression是一个受支持的 binary 数据类型,则返回二进制数据。
注释
如果开始位置或长度值是负数,或者如果开始位置大于第一个字符串的长度,将返回空字符串。如果要删除的长度大于第一个字符串的长度,将删除到第一个字符串中的第一个字符。
如果结果值大于返回类型支持的最大值,则产生错误。
示例
以下示例在第一个字符串abcdef中删除从第2个位置(字符b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。
SELECTSTUFF('abcdef',2,3,'ijklmn');
GO
下面是结果集:
---------
aijklmnef
(1 row(s) affected)
以上摘自:https://msdn.microsoft.com/zh-cn/library/ms188043(v=sql.105).aspx