当对 INT 类型进行求和时出现算术溢出错误,如何将其转换为 BIGINT 类型?

49

当我尝试对表中的一列求和时,我会得到错误消息Arithmetic overflow error converting expression to data type int,因为结果数字太大了超过了INT类型的范围。所以我尝试使用以下语句将其转换为BIGINT:

SELECT CAST(SUM(columnname) AS BIGINT) FROM tablename

这给了我相同的错误。有什么想法我做错了什么吗?

1个回答

87

在求和之前尝试进行转换。例如:

SELECT SUM(CONVERT(bigint, columnname)) FROM tablename
或者
SELECT SUM(CAST(columnname AS BIGINT)) FROM tablename

从 tablename 中选择 (SUM(CAST(columnname AS BIGINT)) + SUM(CAST(columnname AS BIGINT)) + SUM(CAST(columnname AS BIGINT)))/xxxxx) 作为 total_usage。我一直在尝试您的解决方案,但它仍然不起作用。 - Nani3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接