我的数据库中有以下条目:
1;3000;30;20;20;20;30000;30;21;3
我想添加;
左侧的所有第一个数字以及;
右侧的所有第一个数字,因此(在这种情况下)它会显示2;23
{{1} }}
请注意,字符数(;)可能会有所不同,但它们始终是相同的字符。
我该如何解决?
答案 0 :(得分:0)
您可以使用以下功能获得所需内容:
CREATE FUNCTION GetCounts
(
@stringToSplit varchar(max)
)
RETURNS varchar(max)
AS
BEGIN
declare @sumDigitsBefore int = 0, @sumDigitsAfter int = 0, @currentIndex int = 0
select @currentIndex = charindex(';', @stringToSplit)
while @currentIndex > 0
begin
if @currentIndex > 1
begin
select @sumDigitsBefore = @sumDigitsBefore + cast(substring(@stringToSplit, @currentIndex - 1, 1) as int)
end
if @currentIndex < len(@stringToSplit)
begin
select @sumDigitsAfter = @sumDigitsAfter + cast(substring(@stringToSplit, @currentIndex + 1, 1) as int)
end
select @currentIndex = charindex(';', @stringToSplit, @currentIndex + 1)
end
-- Return the result of the function
RETURN cast(@sumDigitsBefore as varchar(max)) + ';' + cast(@sumDigitsAfter as varchar(max))
END
GO