How about this?
declare @pos smallint
declare @string varchar(100)
set @string = '1109A><":{$%^&*4DSE2@!~$%^&567KJHGT'
while isnumeric(@string+'e0') = 0
begin
set @pos = (select patindex('%[^0-9]%',@string))
set @string = (select replace(@string,substring(@string,@pos,1),''))
end
select @string
there is a reson to add 'e0' to the string. check this out,
select IsNumeric('1002e0')
in this case IsNumeric returns 1. So in the above example @String never get replaced with ''. Adding 'e0' again would resolve that.
read more about this: