当前位置:首页 » 编程语言 » sqlserver替换字符串
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserver替换字符串

发布时间: 2022-01-23 04:10:37

sqlserver储存过程中过滤字符串 @ id varchar(16) 我想替换掉或者过滤掉 @id 中含有 ' 或者 delete

declare@Avarchar(100);
set@A='AAAAAAbb';
set@A=REPLACE(@A,'b','')
select@A
--显示结果AAAAAA

自己看着办吧,我只能帮助这么多了,你说的若是特殊字符单引号的话太他妈麻烦了,不想拼

❷ sql server 将字符串第二字符替换为另外一个字符的 方法

update emp_info_master set chn_name=replace(chn_name,'静','可')where chn_name like '%静%' and chn_name not like '%静静%'

查询条件为:名称中有静字,但不能是静静,这样就满足你的要求了。

❸ 求助!SQLServer数据库 内容关键字替换 语句

sql函数中就有replace函数可以使用

也可以使用字符串函数 处理charindex,substring等

❹ 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

❺ sqlserver 中ntext字段的批量替换(updatetext的用法)

一、问题描述:
1。在Sql
Server
中,ntext/text/image
字段不允许应用replace函数替换内容;
2。通过convert字段转换,可以把ntext字段转换为varchar(8000),然后用Relpace函数替换,不过,此方法,对于字段长度大于8000的ntext字段无效。
二、问题解决
整理通用存储过程,代码如下:
复制代码
代码如下:
CREATE
procere
[dbo].[Proc_UpdateNTextField]
@TargetTable
nvarchar(1000),
--目标表名
@TargetField
nvarchar(1000),
--目标字段名
@PKField
nvarchar(1000),
--该表主键字段名
@otxt
nvarchar(1000),
--需要替换的字符串
@ntxt
nvarchar(1000)
--替换后的字符串
as
begin
declare
@SqlStr
nvarchar(4000)
set
@SqlStr
=
'
declare
@txtlen
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@txtlen
=
len('''
+
@otxt
+
''')
'
set
@SqlStr
=
@SqlStr
+
'
declare
@pos
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos
=
0
'
set
@SqlStr
=
@SqlStr
+
'declare
curs
cursor
local
fast_forward
for
select
'
set
@SqlStr
=
@SqlStr
+
@PKField
+
'
,
textptr('
+
@TargetField
+')
from
'
+
@TargetTable
+'
where
'
+
@TargetField
+
'
like
''%'
+
@otxt
+'%'''
set
@SqlStr
=
@SqlStr
+
'
declare
@ptr
binary(16)
'
set
@SqlStr
=
@SqlStr
+
'
declare
@id
char(32)
'
set
@SqlStr
=
@SqlStr
+
'
open
curs
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
while
@@fetch_status
=
0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
while
@pos>0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos=@pos-1
'
set
@SqlStr
=
@SqlStr
+
'
updatetext
'
+
@TargetTable
+
'.'
+@TargetField
+
'
@ptr
@pos
@txtlen
'''
+
@ntxt
+
'''
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
close
curs
'
set
@SqlStr
=
@SqlStr
+
'
deallocate
curs
'
EXECUTE
sp_executesql
@SqlStr
end

❻ sql 替换指定字符串

这个很简单,
str="\data\2003\2003-1-<001-002>.tif "
str=replace(str,"-002","-001")
现在的str就是你要的结果,
你可以定义一个要贴换的字符串,用来贴换的字符串
如:oldstr="-002"
newstr="-001"
str=replace(str,oldstr,newstr)

❼ sqlserver 字符串替换为什麽执行不成功

@Count
nvarchar(5)='',
@AdPozition
nvarchar(50)='',
@AdType
nvarchar(50)=''
参数都必须有值,最起码要有个默认值,要不然拼写sql语句的时候整条语句都是空

❽ 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怎么批量替换字段里的字符串的

方法一:
varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。

update表名set字段名=replace(cast(与前面一样的字段名asvarchar(8000)),'原本内容','想要替换成什么')

方法二:

update[表名]set字段名=replace(与前面一样的字段名,'原本内容','想要替换成什么')

❿ 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