当前位置: 首页 > 图文教程 > 数据库 > MSSQL > MSSQL 字符段分段更新

MSSQL
SQL Server数据库技术(14)
SQL Server数据库技术(15)
SQL Server数据库技术(16)
SQL Server数据库技术(17)
SQL Server数据库技术(18)
SQL Server数据库技术(19)
SQL Server数据库技术(20)
SQL Server数据库技术(21)
SQL Server数据库技术(22)
SQL Server数据库技术(23)
SQL Server数据库技术(24)
SQL Server数据库技术(25)
SQL Server数据库技术(26)
SQL Server数据库技术(27)
SQL Server数据库技术(28)
SQL Server数据库技术(30)
SQL Server数据库技术(31)
SQL Server数据库技术(32)
SQL Server数据库技术(34)
SQL Server数据库技术(35)

MSSQL 字符段分段更新


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 237 ::
收藏到网摘: n/a

MSSQL 字符段分段更新,大家可以参考下。 -->分段更新
-->Author:wufeng4552
-->Date :2009-10-07 08:13:41
--如:更新'a,a,a,a,a' 第三段a 為 'test' 結果為'a,a,a,test,a'
declare @s varchar(20)--更新的字符串
declare @split varchar(10)--分割符
declare @splitlen int
declare @pos int --更新的段 如上為第三段
declare @value varchar(10) --更新後的值 'test'
declare @I int,@J int --變量
select @s='a,a,a,a,a',@split=',',@splitlen=len(@split+'a')-2,@i=1,@j=charindex(@split,@s+@split),@pos=3,@value='test'
--循環開始
while @pos>0 and @I<=@J
begin
select @pos=@pos-1,@I=@J+@splitlen+1,@J=charindex(@split,@s+@split,@i)
end
select @s=case when @I<@J then stuff(@s,@I,@J-@I,@value)
when @J>len(@s) then @s+@value
when @I=@J then stuff(@s,@I,0,@value)
else @s end
select @s
/*
--------------------
a,a,a,test,a
(1 個資料列受到影響)
*/