sql 根据一串字符数字(使用通配符写法)


--踢除字符串,取纯数字
 FUNCTION [dbo].[GetNum](@str varchar(1000))
RETURNS varchar(1000) AS 
BEGIN
 declare @N varchar(80)
 set @N=''
 while PATINDEX('%[0-9]%',@str)<>0 --每次循环找出一个数字
 begin
 set @N = @N+substring(@str,PATINDEX('%[0-9]%',@str),1)--把找出来的数字进行相加
 set @str=substring(@str,1,PATINDEX('%[0-9]%',@str)-1)+
 substring(@str,PATINDEX('%[0-9]%',@str)+1,len(@str)-PATINDEX('%[0-9]%',@str))
 --把找出来的数字从原先的字符串中踢除出来,然后再循环找出更多的数字
 end
 return @N
END

select dbo.[GetNum]('12a34f5')--12345

你可能感兴趣的:(sql 根据一串字符数字(使用通配符写法))