将expression转化为数据类型int时发生算术溢出错误

前言

如题所示,sqlserver在进行sum运算时发生了这个错误,因为是在程序里运行的,一开始以为是实体类里字段是int类型的问题,但是改为Long型后还是一样的问题,后来直接执行sql语句发现是一样的报错,下面记录下解决方案

解决

sql语句如下

1
select sum(a) as a from user group by a

a是int类型,一般情况下int是够了,但是数据量较大时,会超过int的最大值,所以如果没法改表中字段的类型的话,那就再sql里直接cast转换

1
select sum(cast(a as bigint)) as a from user group by a

如上,cast转换为bigint即可