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

MSSQL
SQL Server里面的时间变更周期
在SQL中设置允许同时连接的用户数
Web数据库中间件技术
在SQL数据库中得到重复次数最多的记录
Proxy Server和SQL Server在上数据库的安全复制
在各种数据库中如何限制检索行数?
如何在Oracle 中实现类似自动增加 ID 的功能?
SQL中代替Like语句的另一种写法
游标操作时进行Update应注意的一个问题
SQL语句中的一些参数如何用变量来代替?
在SQL2000查询中使用XDR的例子
SQL Server 7.0 的数据迁移到MySQL上的一种方法
关于在 win2000 下安装 mysql 的一些问题!
讨论: SELECT TOP N 问题
全文本检索的应用(1)
全文本检索的应用(2)
全文本检索的应用(3)
谈谈sql查询的between
用SQL Server为Web浏览器提供图像(一)(转)
用SQL Server为Web浏览器提供图像(二)(转)

MSSQL 字符段分段更新


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 215 ::
收藏到网摘: 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 個資料列受到影響)
*/