hive中执行select cast(‘20’ as bigint union all select cast(‘20’ as decimal(30,8) 结果值是浮点型,目标表数据类型是bigint,数据导入到目标表
时间: 2023-12-10 07:36:50 浏览: 78
在Hive中,如果将一个DECIMAL类型的值与一个BIGINT类型的值进行UNION操作,那么结果会被当作DOUBLE类型处理。因此,当执行如下语句时:
```
select cast('20' as bigint) union all select cast('20' as decimal(30,8));
```
结果会变成一个浮点型,具体数值为20.0。如果将该结果导入到目标表中,由于目标表的数据类型是BIGINT,因此会将20.0强制转换为20,最终存储到目标表中的数据是整数类型20。
阅读全文