Sql server ';将int转换为数据类型numeric';我的查询出错
我的逻辑查询有什么问题?我只想计算用户的评分Sql server ';将int转换为数据类型numeric';我的查询出错,sql-server,stored-procedures,Sql Server,Stored Procedures,我的逻辑查询有什么问题?我只想计算用户的评分 UPDATE MyTable SET RatingAvg = CASE WHEN RatingAvg = 0 THEN @Rating ELSE CAST(((( CAST(RatingAvg AS DECIMAL(7,6)) * CAST(ReviewCount AS DECIMAL(7,6))) + CAST(@Rating AS DE
UPDATE MyTable
SET RatingAvg = CASE
WHEN RatingAvg = 0 THEN @Rating
ELSE CAST(((( CAST(RatingAvg AS DECIMAL(7,6)) * CAST(ReviewCount AS DECIMAL(7,6))) + CAST(@Rating AS DECIMAL(7,6))) / CAST((ReviewCount + 1)AS DECIMAL(7,6))) AS DECIMAL(7,6))
END
当您将大整数转换为十进制(7,6) Decimal定义总位数,然后是小数后的数字。因此,在这种情况下,最大数字是
9
,您可以将其转换为十进制(7,6)
当您尝试将大于9的数字强制转换为十进制(7,6)时,您将得到一个错误
将int转换为数据类型numeric时出现算术溢出错误
请添加示例数据什么是
@Rating
的数据类型?这是一个很好的起点: