我需要将此1250
之类的varchar值转换为十进制值12.50
。
一些例子:
16500 165.00
17525 175.25
1015 10.15
955 9.55
我实际上使用它来执行stuff(@total,len(@total)-1,0,'.')
,然后将我的值插入表格中的十进制列。这有效直到varchar值大于100
= 1.00
。实际上,如果我得到一个像5
= 0.05
(5美分)这样的值,我就会遇到问题并且它不起作用。它还必须适用于-3
= -0.03
答案 0 :(得分:4)
您是否尝试过TRY_CAST功能? 像
这样的东西 SELECT TRY_CAST('1625' AS float) / 100
FROM yourtable
编辑: 更好的是:)
SELECT
CASE WHEN ISNUMERIC(@total) = 1
THEN TRY_CAST(@total AS float) / 100
ELSE 'NOT NUMERIC'
END AS Total
FROM yourtable