MSSQL 字符段分段更新
更新時間:2009年10月07日 22:13:49 作者:
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'
--循環(huán)開始
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 個資料列受到影響)
*/
-->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'
--循環(huán)開始
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 個資料列受到影響)
*/
相關文章
讓sql2005運行在獨立用戶下出現(xiàn) WMI 提供程序錯誤的解決方式
您還有 %1 的時間注銷,如果您 在此時間到之后仍沒有注銷,您的會話 將會斷開,任何打開的文件或設備 就可能丟失數據2012-11-11
SQLServer2005 Output子句獲取剛插入的ID值
SQLServer2005的Output子句獲取剛插入的ID值2009-08-08
Sql server 備份還原后出現(xiàn) 受限制用戶 問題
怎么解決Sql Server 2005數據庫備份還原后出現(xiàn)“受限制用戶”,這是大家在數據庫備份還原后經常遇到的問題,我們今天就來探討下.2020-03-03

