A. sql server 将字符串第二字符替换为另外一个字符的 方法
update emp_info_master set chn_name=replace(chn_name,'静','可')where chn_name like '%静%' and chn_name not like '%静静%'
查询条件为:名称中有静字,但不能是静静,这样就满足你的要求了。
B. sqlserver 字符串替换为什麽执行不成功
@Count
nvarchar(5)='',
@AdPozition
nvarchar(50)='',
@AdType
nvarchar(50)=''
参数都必须有值,最起码要有个默认值,要不然拼写sql语句的时候整条语句都是空
C. 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
D. 怎样批量查找替换整个sqlserver数据库中的字符,网站换域名了,
没办法,不可能一个库一下全换了,没那样的操作。
但你可以这样操作。
1检查每张表的每个字段,查每个字符型的,字段,是否有可能有要修改的数据。这个的手工一个一个的确定下来。
2update 表名 set 字段1=replace (字段1,'原网址','新网址') .
这样一个一个的替的话,也快,
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)
E. SQL替换特定字符串问题
sqlserver:
update table set col=left(col,charindex('ABC',col)+3)
F. sql 替换指定字符串
CreateFunction[dbo].[MyReplace](@RegVarchar(1000),@SourceVarchar(4000),@StrVarchar(1000))
returnssql_variant
As
Begin
Declare@ErrInt
Declare@objInt
Declare@Rstsql_variant
EXEC@Err=Sp_OACreate'VBScript.RegExp',@objOUTPUT
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Pattern',@Reg
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Global','True'
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'IgnoreCase','False'
If@Err<>0GoToLB
EXEC@Err=Sp_OAMethod@obj,'Replace',@RstOUTPUT,@source,@Str
If@Err<>0GoToLB
EXEC@Err=Sp_OADestroy@obj
If@Err<>0GoToLB
Return@Rst
LB:
EXECSp_OADestroy@obj
RETURNNull
End
GO
--开启OleAutomationProceres配置
/*
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'OleAutomationProceres',1
reconfigure
execsp_configure'showadvancedoptions',0
reconfigure
*/
--建表
CreateTableT
(
idint,
codeVarchar(100)
)
--插入数据
InsertIntoTValues(1,'code001,pass002')
InsertIntoTValues(2,'pass001,code002,code003')
InsertIntoTValues(3,'word009,code009')
InsertIntoTValues(4,'code090,word010,code089')
InsertIntoTValues(5,'code008')
--更新
--正则表达式替换(把code+3个数字的都替换成num001)
Select*,dbo.MyReplace('coded{3}',code,'num001')As替换后Fromt
UpdateTSetCode=dbo.MyReplace('coded{3}',code,'num001')
G. sqlserver2005批量替换字符
额,思路是,比如用java操作数据库。那么先查询出所有的数据,然后循环用java来替换这些字符串,再进行更新就可以了
H. 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需要试验才行,我这里可没有相关环境。
注:我忘了问号需不需要转译了,这个你自己试试看吧。
I. sqlserver储存过程中过滤字符串 @ id varchar(16) 我想替换掉或者过滤掉 @id 中含有 ' 或者 delete
declare@Avarchar(100);
set@A='AAAAAAbb';
set@A=REPLACE(@A,'b','')
select@A
--显示结果AAAAAA
自己看着办吧,我只能帮助这么多了,你说的若是特殊字符单引号的话太他妈麻烦了,不想拼
J. sql怎么批量替换字段里的字符串的
方法一:
varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。
update表名set字段名=replace(cast(与前面一样的字段名asvarchar(8000)),'原本内容','想要替换成什么')
方法二:
update[表名]set字段名=replace(与前面一样的字段名,'原本内容','想要替换成什么')