结果转换为小数时 SQL 服务器出现算术溢出错误
Arithmetic overflow error in SQL Server when the result is cast to a decimal
在 SELECT
语句中,我试图计算精度为小数点后一位的百分比。
这条语句在select语句中returns出现算术溢出错误:
CAST(((COUNT(TicketNbr)*100.00)/@TotalCount) AS Decimal (3,1)) END AS Percentage
COUNT(TicketNbr)
计数值为 10。
@TotalCount 值为 10。
如果我不投结果,结果是1.0000。但是当我使用CAST
函数时,查询结果出现算术溢出错误。
为什么会出现这个错误?
10 * 100.0 / 10 的结果是 100.0
它需要最小的 decimal(4,1) 来保存该值。
将其转换为 decimal(3,1) 将导致溢出错误
在 SELECT
语句中,我试图计算精度为小数点后一位的百分比。
这条语句在select语句中returns出现算术溢出错误:
CAST(((COUNT(TicketNbr)*100.00)/@TotalCount) AS Decimal (3,1)) END AS Percentage
COUNT(TicketNbr)
计数值为 10。
@TotalCount 值为 10。
如果我不投结果,结果是1.0000。但是当我使用CAST
函数时,查询结果出现算术溢出错误。
为什么会出现这个错误?
10 * 100.0 / 10 的结果是 100.0
它需要最小的 decimal(4,1) 来保存该值。
将其转换为 decimal(3,1) 将导致溢出错误