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

MSSQL
如何取得一个表的所有字段名用逗号分割
Sql Server下数据库链接的使用方法
修改SQL SERVER内置存储过程
oracle中解决汉字无法显示、输入问题
两台SQL Server数据同步解决方案
SQL服务器内存有两种基本管理方法:动态分配和静态分配
SQL Server里函数的两种用法(可以代替游标)
sql server的cube操作符使用详解
SQL中HAVING从句的用法
使用T_SQL脚本创建SQLServer2000后台计划作业任务
SQL Server中合并用户日志表的方法
SQL Server 本机 Web 服务的使用方案
Windows XP下安装SQL2000企业版
三步堵死SQL注入漏洞
HOW TO:使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000
如何获取SQL Server数据库里表的占用容量大小
查询表主键外键信息的SQL
SQL Server根据查询结果,生成XML文件
SQL Server2005 Analysis服务实践之起步
关于对sql2000查询结果进行相关度排序的测试

MSSQL 字符段分段更新


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