Is there any way to force the SUM aggregates on
bigint to explicitly allow overflow?
That is, is there any way to get the queries below to return -2147483648 and -9223372036854775808 respectively, instead of giving an “Arithmetic overflow” error?
select SUM(x) as sumx from ( select 2147483647 as x union select 1 as x) a; select SUM(x) as sumx from ( select cast(9223372036854775807 as bigint) as x union select 1 as x) a;
I tried to SET ARITHABORT OFF; and SET ANSI_WARNINGS OFF;, but that just gives me NULL instead of a number result, so that doesn’t seem to help.
Read more here: Source link