我在hive表中有一列,我想使用impala和hive来查询该列,它应该舍入到10个十进制值。ie测试列=32.54299947199998select test\列应返回32.5429994720。我可以在select查询中使用什么函数来返回这样的值?
elcex8rz1#
找到解决办法了。从表\u name中选择cast(test \u column as decimal(20,10))这将导致:32.5429994720其中as round(test_列,10)不返回所需结果。
y3bcpkx12#
在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为十进制(20,10))| round(32.54299947199998,10)| cast(round(32.54299947199998,10)为十进制(20,10))32.5429994719 | 32.5429994720 | 32.5429994720
2条答案
按热度按时间elcex8rz1#
找到解决办法了。
从表\u name中选择cast(test \u column as decimal(20,10))
这将导致:32.5429994720
其中as round(test_列,10)不返回所需结果。
y3bcpkx12#
在cloudera 5/rhel上,结果与您的不同(您是否使用了hive?):
在 Impala :
cast(32.542999471999998为十进制(20,10))| round(32.54299947199998,10)| cast(round(32.54299947199998,10)为十进制(20,10))
32.5429994719 | 32.5429994720 | 32.5429994720