createprocedure GetNumFromString @strvarchar(100) as declare@iint declare@lenint declare@str1varchar(100) set@str1='' set@len=len(@str) set@i=1 while@i<=@len begin ifisnumeric(substring(@str,@i,1))>0 begin set@str1=@str1+substring(@str,@i,1) end else begin set@str1=@str1+',' end set@i=@i+1 end selectreplace(@str1,',','') GO
或者
declare@strvarchar(100),@tmpvarchar(101),@iint set@str='sddfd123fddfd56fddf78' set@tmp=@str+'a' whilepatindex('%[0-9]%',@tmp)>0 begin set@i=1 while1=1 begin ifisnumeric(substring(@tmp,patindex('%[0-9]%',@tmp)+@i,1))=0break set@i=@i+1 end printsubstring(@tmp,patindex('%[0-9]%',@tmp),@i) set@tmp=stuff(@tmp,patindex('%[0-9]%',@tmp),@i,'') end