如何在SQL SERVER 上使用循环替换

3 篇文章 0 订阅

--select right(@strReplace,-2)

/*
循环替换一个字符串
set @strReplace='市;区;公司' 要替换的字符,以分号分隔
set @strTest = '厦门市思明区xxx信息科技有限公司' 需要进行替换的原字符串
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].getArraryReplaceStr') and xtype='FN')
Drop function  getArraryReplaceStr
GO
create function getArraryReplaceStr(@strReplace varchar(1000),@strTest varchar(1000))
returns varchar(100)
as
begin

declare @start int,@end int,@len int,@strTmp varchar(1000)
set @start=0
set @len=len(@strReplace)
while(@len>0)
begin
        --select @start
        select @end=CHARINDEX(';',@strReplace)
        --select @end
        if @start=@end
    begin
                set @len=0
                select @strTest=replace(@strTest,@strReplace,'')
        end
        else
        begin
                set @len=@end-@start
                --select @len
                select @strTmp=substring(@strReplace,@start,@len)
                select @strReplace=replace(@strReplace,@strTmp+';','')
                --select @strReplace
                select @strTest=replace(@strTest,@strTmp,'')
                --set @start=@end
        end
end
return @strTest
end
go
declare @strReplace varchar(1000),@strTest varchar(1000),@strTmp varchar(1000)
set @strReplace='市;区;公司'
set @strTest = '厦门市思明区xxx信息科技有限公司'

select dbo.getArraryReplaceStr(@strReplace,@strTest)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值