SQL取字符串中的数字并进行进行求和
针对类似于字符串“ce10shi3yi7xia4”中的10、3、7、4进行累加计算结果为24。
具体实现代码:
CREATE FUNCTION dbo.F_Get_SUM_Number (@S VARCHAR(100))
returns int
AS
BEGIN
--declare @S varchar(100) = 'ce10shi3yi7xia4'
declare @snum varchar(100)=''
declare @ssum int=0
WHILE len(@S) > 0
BEGIN
if PATINDEX('%[0-9]%',left(@S,1))>0
begin
set @snum=@snum+substring(left(@S,1),patindex('%[0-9]%',left(@S,1)),1)
if len(@S)=1
begin
set @ssum=@ssum+convert(int,isnull(@snum,'0'))
set @snum=''
end
end
else
begin
set @ssum=@ssum+convert(int,isnull(@snum,'0'))
set @snum=''
end
set @S=right(@S,len(@S)-1)
END
--select @ssum
return @ssum;
end