当我触发查询时在Hive shell上 选择强制转换(1234.0为十进制(7,6))它返回NULL 还有1234.0带小数(7,5),十进制(7,4)无效,Hive返回NULL。但是使用十进制(7,0),十进制(7,1),十进制(7,2),十进制(7,3)它起作用。任何人都可以告诉我Hive如何使用十进制
答案 0 :(得分:1)
Decimal(magnitude,scale)
表示幅度总有效数字的小数,其中 scale 位于小数点右侧。因此Decimal(7,3)
可以包含多达7位有效数字,其中3位于小数点右侧(即mmmm.sss
),而Decimal(7,4)
仍有7位有效数字,但有4位是小数点的右边,只留下三个整数部分(mmm.ssss
)。
后一种格式无法表示数字1234.0
,因为它的小数点 left 的位数太多。