欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

sql字符替换与利用sql存储过程替换

程序员文章站 2022-04-20 18:53:38
...

如果你在替换数据库的指定字符串或字符,我们需要利用sql字符替换,但是对于超大容量的数据替换我们可能要用到sql存储过程替换 物,因为存储过程效率高于我们自己写的替换函数哦。

如果你在替换的指定字符串或字符,我们需要利用sql字符替换,但是对于超大容量的数据替换我们可能要用到sql替换 物,因为存储过程效率高于我们自己写的替换函数哦。

update 数据表 set 字段=replace(字段,'.','')

下面看一款查询结果字符替换

--select * from sjz_dlfzb

--select replace (substring(tbrq,2,len(tbrq)-2),'$','-') from sjz_dlfzb

update sjz_dlfzb set tbrq=replace (substring(tbrq,2,len(tbrq)-2),'$','-')

update sjz_hpzb set wdm=replace (substring(wdm,2,len(wdm)-2),'$','-') where hp_id !='130121010001'


update sjz_hpzb set dxslx=replace (substring(dxslx,2,len(dxslx)-2),'$','-')


select * from sjz_nslzb

update sjz_nslzb set tbrq=replace (substring(tbrq,2,len(tbrq)),'$','-') where nsl_id='130131030061'

select * from sjz_nslzb where nsl_id='130131030061'

select * from sjz_nslzb where nsl_id='130132030033'
update sjz_nslzb set tbrq=replace (tbrq,'$','-') where nsl_id='130132030033'
sjz_xpzb

update sjz_xpzb set wd=replace (substring(wd,2,len(wd)),'$','-')


利用存储过程替换字符

create table hello(id int identity(1,1),content text)
insert into hello
select 'sql字符替换与利用sql存储过程替换
'
union all select 'sql字符替换与利用sql存储过程替换
'

--定义替换/删除的字符串
declare @s_str varchar(8000),@d_str varchar(8000)
select @s_str='http://localhost/' --要替换的字符串
,@d_str='' --替换成的字符串

--定义游标,循环处理数据
declare @id int
declare #tb cursor for select id from hello
open #tb
fetch next from #tb into @id
while @@fetch_status=0
begin
--字符串替换处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(content),@rplen=len(@s_str),@postion=charindex(@s_str,content)-1 from hello where id=@id
while @postion>0
begin
updatetext hello.content @p @postion @rplen @d_str
select @postion=charindex(@s_str,content)-1 from hello where id=@id
end

fetch next from #tb into @id
end
close #tb
deallocate #tb

--显示结果
select * from hello

--删除数据测试环境
drop table hello