拆分一个字符串

chenye111 2006-02-21 02:18:26
有一个变量
@aa='1:23;2:3;3:4;4:45;5:45'
需要把:后面的数加起来
也就是计算23+3+4+45+45
注:@aa变量(如1:23、2:3)不固定的
...全文
92 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
-狙击手- 2006-02-21
declare @s varchar(8000)
set @s='1:23;2:3;3:4;4:45;5:45'
set @s = ';'+@s
while charindex(':',@s)>0
begin
select @s = stuff(@s,charindex(';',@s),charindex(':',@s)-charindex(';',@s)+1,'+')
end
set @s = stuff(@s,1,1,'')
print @s
exec('select '+@s)
/*
23+3+4+45+45

-----------
120

*/


回复
chenye111 2006-02-21
回复happyflystone(仙林幽谷客):
其中有:与;
两种分隔符
而不是一种
回复
chenye111 2006-02-21
注:@aa变量(如1:23、2:3)不固定的
------------------
关键是格式不固定,可能还有别的分隔符号在里面


回复:没有其他的分隔符了

回复
子陌红尘 2006-02-21
declare @aa varchar(1000),@bb varchar(1000)
set @aa='1:23;2:3;3:4;4:45;5:45'
set @bb=''
while charindex(';',@aa)>0
begin
set @aa=stuff(@aa,1,charindex(':',@aa),'')
set @bb=@bb+left(@aa,charindex(';',@aa))
end
set @aa=stuff(@aa,1,charindex(':',@aa),'')
set @bb=replace(@bb,';','+')+@aa
exec('select '+@bb)

/*
------
120
*/
回复
子陌红尘 2006-02-21
declare @aa varchar(1000),@bb varchar(1000)
set @aa='1:23;2:3;3:4;4:45;5:45'
set @bb=''
while charindex(':',@aa)>0
begin
set @aa=stuff(@aa,1,charindex(':',@aa),'')
set @bb=@bb+left(@aa,charindex(';',@aa))
end
set @aa=stuff(@aa,1,charindex(':',@aa),'')
set @bb=replace(@bb,';','+')+@aa
exec('select '+@bb)

/*
------
120
*/
回复
lsqkeke 2006-02-21
注:@aa变量(如1:23、2:3)不固定的
------------------
关键是格式不固定,可能还有别的分隔符号在里面
回复
zlp321002 2006-02-21
--最好的方法,是写一个自定义函数或者存储过程处理.

--然后调用
回复
zlp321002 2006-02-21
--借下临时表
declare @s varchar(2000),@result varchar(2000)
set @s='1:23;2:3;3:4;4:45;5:45'
select @result= 'select '''+replace(@s,';',''' union all select ''')+''''
Create table #(t varchar(10))
insert into # exec(@result)

select sums=sum(cast(RIGHT(t,LEN(t)-charindex(':',t)) as int)) from #
/*
sums
-----------
120
*/
回复
lsqkeke 2006-02-21
问题比较复杂 多想想解决方法先
回复
-狙击手- 2006-02-21
declare @s varchar(8000)
set @s='1;23;2;3;3;4;4;45;5;45'
set @s=replace(@s,';','+')
exec('select '+@s)
/*
-----------
135

*/
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-02-21 02:18
社区公告
暂无公告