SELECT CONVERT(DECIMAL(15,1), REPLACE('1,0000000000000001', ',',''))SELECT CONVERT(DECIMAL(15,1), REPLACE('1,0000000000000001', ',','.'))
--sample dataIF OBJECT_ID('tempdb..#TempTable') IS NOT NULLDROP TABLE #TempTableCREATE TABLE #TempTable ( [ID] INT IDENTITY(1,1) NOT NULL, [Col1] VARCHAR(50) NULL, PRIMARY KEY (ID))INSERT INTO #TempTableSELECT '123456789'UNIONSELECT '123456789123456789'UNIONSELECT '123,456,789,123,456,789'UNIONSELECT NULLUNIONSELECT ''UNIONSELECT 'XYZ'SELECT * FROM #TempTable
SELECT ID ,CAST(Result AS DECIMAL(20,2)) AS ResultFROM ( SELECT ID ,REPLACE(Col1,',','') AS Result ,(CASE WHEN NULLIF(Col1,'') IS NULL THEN 0 WHEN ISNUMERIC(ISNULL(NULLIF(REPLACE(Col1,',',''),''),0)) = 1 THEN 1 ELSE 0 END) AS isNum FROM #TempTable ) rWHERE IsNum = 1
SELECT '123e4'
IF OBJECT_ID('tempdb..#TempTable') IS NOT NULLDROP TABLE #TempTableCREATE TABLE #TempTable ( [ID] INT IDENTITY(1,1) NOT NULL, [Col1] VARCHAR(50) NULL, PRIMARY KEY (ID))INSERT INTO #TempTableSELECT '123456789'UNIONSELECT '123456789123456789'UNIONSELECT '123,456,789,123,456,789'UNIONSELECT NULLUNIONSELECT ''UNIONSELECT 'XYZ'unionSELECT '123e4'--SELECT * FROM #TempTableSELECT ID ,CAST(Result AS DECIMAL(20,2)) AS ResultFROM ( SELECT ID ,REPLACE(Col1,',','') AS Result ,(CASE WHEN NULLIF(Col1,'') IS NULL THEN 0 WHEN ISNUMERIC(ISNULL(NULLIF(REPLACE(Col1,',',''),''),0)) = 1 THEN 1 ELSE 0 END) AS isNum FROM #TempTable ) rWHERE IsNum = 1
PATINDEX(%[0-9]%)