更新字符串列表中,指定位置的字符串
发表于:2007-07-02来源:作者:点击数:
标签:
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
/*--更新字符串列表中,指定位置的字符串
更新字符串列表中,指定位置的字符串为新的值 如果位置超出范围,则不做更新
--邹建 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
原文转自:http://www.ltesting.net