结果转换为小数时,SQL Server中的算术溢出错误

时间:2016-11-20 06:21:31

标签: sql-server arithmetic-expressions

SELECT语句中,我试图计算一个精度为小数点后1位的百分比。

select语句中的此语句返回算术溢出错误:

CAST(((COUNT(TicketNbr)*100.00)/@TotalCount) AS Decimal (3,1)) END AS Percentage

COUNT(TicketNbr)计数值为10.

@TotalCount值为10.

如果我没有投射结果,结果是1.0000。但是当我使用CAST函数时,查询会产生算术溢出错误。

为什么会出现此错误?

1 个答案:

答案 0 :(得分:3)

10 * 100.0 / 10的结果是100.0

它需要一个十进制小数(4,1)来保存该值。

您将其转换为十进制(3,1)将导致溢出错误