在用hive数仓开发中经常会遇到多个多个decimal相乘,最后发现结果为null,
但是两个乘数都有值。
- 第一种情况是两个乘数数据类型不匹配,请看下图示例:
因此遇到此问题一定要确定两个乘数类型都能转换成decimal
- 第二种情况是decimal类型精度溢出。请看下图示例:
当以上值超出38位就会精度溢出导致数据为nul,经过测试decimal最长精度为32位
以上问题是在工作中遇到的小坑,希望能对你有用。
在用hive数仓开发中经常会遇到多个多个decimal相乘,最后发现结果为null,
但是两个乘数都有值。