更新字串列表中,指定位置的字串

2021-04-16 17:52:27 字數 902 閱讀 1721

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[f_updatestr]') and xtype in (n'fn', n'if', n'tf'))

drop function [dbo].[f_updatestr]

go/*--更新字串列表中,指定位置的字串

更新字串列表中,指定位置的字串為新的值

如果位置超出範圍,則不做更新

--鄒建 2004.07(引用請保留此資訊)--*/

/*--呼叫示例

select dbo.f_updatestr('001|002|003|',1,'00a','|')

--*/

create function f_updatestr(

@s varchar(8000),

@pos int,

@newstr varchar(100),

@spliststr varchar(10) --字串列表的分隔符

)returns varchar(8000)

asbegin

declare @i int,@ilen int

select @i=charindex(@spliststr,@spliststr+@s)

,@ilen=len(@spliststr)

while @i>0 and @pos>1

select @i=charindex(@spliststr,@s,@i)+@ilen

,@pos=@pos-1

return(case @i when 0 then @s else stuff(@s,@i,charindex(@spliststr,@s+@spliststr,@i)-@i,@newstr) end)

endgo

更新字串列表中,指定位置的字串

if exists select from dbo.sysobjects where id object id n dbo f updatestr and xtype in n fn n if n tf drop function dbo f updatestr go 更新字串列表中,指定位置的字串...

更新字串列表中,指定位置的字串

if exists select from dbo.sysobjects where id object id n dbo f updatestr and xtype in n fn n if n tf drop function dbo f updatestr go 更新字串列表中,指定位置的字串...

更新字串列表中,指定位置的字串

if exists select from dbo.sysobjects where id object id n dbo f updatestr and xtype in n fn n if n tf drop function dbo f updatestr go 更新字串列表中,指定位置的字串...