您现在的位置是:网站首页> 编程资料编程资料
MSSQL 字符段分段更新_mssql2005_
2023-05-27
402人已围观
简介 MSSQL 字符段分段更新_mssql2005_
-->分段更新
-->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 個資料列受到影響)
*/
-->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 個資料列受到影響)
*/
相关内容
- MSSQL2005 INSERT,UPDATE,DELETE 之OUTPUT子句使用实例_mssql2005_
- SQL2005 大数据量检索的分页_mssql2005_
- sqlserver 中charindex/patindex/like 的比较_mssql2005_
- SQLServer 数据集合的交、并、差集运算_mssql2005_
- SQLServer2005 中的几个统计技巧_mssql2005_
- SQLServer2005 的查询独占模拟_mssql2005_
- 一个删除指定表的所有索引和统计的过程_mssql2005_
- SQLServer Job运行成功或失败时发送电子邮件通知的图文教程_mssql2005_
- sqlserver2005 xml字段的读写操作_mssql2005_
- SQLServer 2005系统配置要求官方说明_mssql2005_
