ALTER FUNCTION [dbo].[ConvertStringToNumeric] (@Value text) RETURNS NUMERIC(12,2) AS BEGIN declare @string varchar(max) SET @string = CONVERT(VARCHAR(MAX), @Value) --set @string='abc93.3ad4' DECLARE @IncorrectCharLoc SMALLINT SET @IncorrectCharLoc = PATINDEX('%[^0-9.-]%', @string) WHILE @IncorrectCharLoc > 0 BEGIN SET @string = STUFF(@string, @IncorrectCharLoc, 1, '') SET @IncorrectCharLoc = PATINDEX('%[^0-9.-]%', @string) ...