Hive 强制转换Bigint数将返回NULL

Hive 强制转换Bigint数将返回NULL,hive,casting,bigint,Hive,Casting,Bigint,我需要将整数值转换为配置单元中的最高数据类型,因为我的值是25位 select cast(18446744073709551614 as bigint); NULL将为上述选择stmnt返回值 我非常清楚,提供的数字大于最大的Bigint。但是我们得到了这样的值,我必须根据这些值来计算最大值,最小值,和,平均值 因此,我如何才能强制转换这种类型的值,以便不获取空值。使用decimal(38,0)存储大于BIGINT的数字,它可以存储38位数字。可以存储19位数字。另请阅读手册中关于 对于文字

我需要将整数值转换为配置单元中的最高数据类型,因为我的值是25位

select cast(18446744073709551614 as bigint); 
NULL
将为上述选择stmnt返回值

我非常清楚,提供的数字大于最大的
Bigint
。但是我们得到了这样的值,我必须根据这些值来计算最大值,最小值,和,平均值

因此,我如何才能强制转换这种类型的值,以便不获取空值。

使用
decimal(38,0)
存储大于BIGINT的数字,它可以存储38位数字。可以存储19位数字。另请阅读手册中关于

对于文字,后缀
BD
是必需的。例如:

hive> select CAST(18446744073709551614BD AS DECIMAL(38,0))+CAST(18446744073709551614BD AS DECIMAL(38,0));
OK
36893488147419103228
Time taken: 0.334 seconds, Fetched: 1 row(s)
hive> select CAST(18446744073709551614BD AS DECIMAL(38,0))*2;
OK
36893488147419103228
Time taken: 0.129 seconds, Fetched: 1 row(s)

谢谢,在将输入转换为字符串本身,然后再转换为十进制之后,它成功了