一个字段保存的数据时这样的

现在要统计产品数量 想把里面的非数字剔除掉 再转换成数值类型
怎么样才能去掉非数字并且批量更新呢
------解决思路----------------------
有点问题该一下
IF object_id('tempdb..#test') IS NOT NULL
DROP TABLE #test
GO
CREATE TABLE #test
(
ID INT,
Val VARCHAR(32)
)
GO
INSERT INTO #test
SELECT 1 ,N'2-3吨' UNION ALL
SELECT 2 , N'40吨' UNION ALL
SELECT 3 , N'1吨' UNION ALL
SELECT 4 , N'0.2吨' UNION ALL
SELECT 5 , N'512-6456吨' union all
SELECT 5 , N'70-80吨'
declare @str varchar(max) = ''
select @str=@str+
case when replace(replace(val,'吨',''),'-','+') like '%+%' then QUOTENAME(replace(replace(val,'吨',''),'-','+'),'()') + '/2.0'
else replace(replace(val,'吨','') ,'-','+') end +' val union all select '
from #test
select @str = LEFT(@str,len(@str) -17)
exec('select '+ @str)
/*
(6 行受影响)
---------------------------------------
2.500000
40.000000
1.000000
0.200000
3484.000000
75.000000
(6 行受影响)
*/