当前位置: 代码迷 >> Sql Server >> 如何把字段中的汉字删掉只保留数字
  详细解决方案

如何把字段中的汉字删掉只保留数字

热度:85   发布时间:2016-04-24 09:44:34.0
怎么把字段中的汉字删掉只保留数字
一个字段保存的数据时这样的
现在要统计产品数量 想把里面的非数字剔除掉 再转换成数值类型
怎么样才能去掉非数字并且批量更新呢

------解决思路----------------------
有点问题该一下

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 行受影响)
*/







  相关解决方案