我在hive表中有一个列,我想使用impala和hive来查询该列,它应该最多可以舍入10个十进制值。
即test_column = 32.542999471999998
select test_column应返回32.5429994720。我可以在select查询中使用什么函数来返回这样的值?
答案 0 :(得分:1)
得到了解决方案。
从table_name
中选择强制转换(test_column as decimal(20,10))这将导致:32.5429994720
其中round(test_column,10)未返回所需结果。
答案 1 :(得分:0)
在Cloudera 5 / RHEL上,结果不像您一样(您使用Hive吗?):
在Impala中:
Select cast ( 32.542999471999998 as decimal(20,10))
, ROUND( 32.542999471999998, 10)
, cast(round( 32.542999471999998,10) as decimal(20,10))
cast(32.542999471999998 as decimal(20,10))| 回合(32.542999471999998,10)|演员(round(32.542999471999998,10)as 十进制(20,10))
32.5429994719 | 32.5429994720 | 32.5429994720