转换bigint数返回null

wxclj1h5  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(590)

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

select cast(18446744073709551614 as bigint);
``` `NULL` 返回上述select语句的值;
我很清楚所提供的数量比最大数量的 `Bigint` . 但是我们得到的是这样的值,我必须根据这些值来计算最大值,最小值,和,平均值
因此,我如何才能强制转换这种类型的值,这样我就不会得到空值。
4xrmg8kj

4xrmg8kj1#

使用 decimal(38, 0) 对于存储比bigint大的数字,它可以存储38位数字。bigint可以存储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)

相关问题