sql中的split

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:43:03
数据库里的一个值,比如说 abc:100.0bcd:2100.0DED:23.0
现在我想把这三个数字取出来然后加起来,该怎么写?

CREATE function [dbo].[split](@aString varchar(8000),@pattern varchar(10))
returns @temp table([Sid] [int] IDENTITY (1, 1) NOT NULL ,a varchar(100))
--实现split功能 的函数
--说明:@aString,字符串,如a:b:c;@pattern,分隔标志,如 :
as
begin
declare @i int
set @aString=rtrim(ltrim(@aString))
set @i=charindex(@pattern,@aString)
while @i>=1
begin
insert @temp values(left(@aString,@i-1))
set @aString=substring(@aString,@i+1,len(@aString)-@i)
set @i=charindex(@pattern,@aString)
end
if @aString<>''
insert @temp values(@aString)
return
end

GO

你有什么规律吗?有规律就好做,比如冒号前面的字符数相同,都是3个
另外你这个字段肯定不是数字型的,相加的话需要进行转换。
用到的函数有
len()字段长度
charindex()找到字符串中特定字符的位置