cast(Field as INT)throw由于数据中的小数而导致转换失败错误

时间:2017-03-21 16:41:11

标签: casting

我有一个tax_percent列,其数据类似于.75%,。5% 我需要对它做总结。

我试过以下 总和(施放(左(d.pe_amt_pct,len(d.pe_amt_pct)-1)为Int))

错误: 将varchar值.75转换为Int

时转换失败

转换为int,convert(int,Filed)由于数据中的小数而两者都不起作用。如何在这个领域做总结?

我搜索了论坛,但没有找到任何带小数的问题。

我在SQL server 2012

1 个答案:

答案 0 :(得分:0)

我不确定您是否希望将这些值相加为“75 + 5 + ...”或“.75 + .5 + ...”?

由于您的数据是存储字符串的百分比,我假设后一种情况 - “。75%”是百分之一的一小部分。

我会使用以下代码:
SUM(CAST(替换(d.pe_amt_pct,'%','')AS FLOAT))

我正在使用CAST(AS FLOAT),因此它将接受数据中的小数。

这将给出浮点SUMMED值,如果需要,您可以将其转换为INT。 希望这会有所帮助。