Postgres - 如何对bigint进行类型转换(bigint)?

时间:2012-12-05 19:04:54

标签: hibernate postgresql biginteger bigdecimal bigint

我有一个Postgres 8.2表,其列定义为bigint数据类型。

当我sum(column)时,返回类型为numeric。我想强制类型转换求和为bigint,因为我确信结果不会超过bigint的最大值。我能够使用这样的子查询实现这一点:

select T.big_col_total::bigint from (select sum(big_col) as big_col_total from big_table) T;

有没有办法在不使用子查询的情况下执行此操作,即,我可以直接以某种方式对sum进行类型转换吗?我尝试了几种方法,都会导致语法错误。

(后台:我正在从Hibernate运行这个查询,所以对我来说很重要的是将查询中的返回数据类型限制为BigInteger.bigint + bigint = numeric(Java端的BigDecimal)

1 个答案:

答案 0 :(得分:1)

只需使用:

select sum(big_col)::bigint as total 
from big_table

您应该尽快升级到支持的版本(例如9.x)。