繁体   English   中英

Hive SQL Cast返回整数

[英]Hive SQL Cast returning integer

我正在尝试将字符串强制转换为小数,并且它不断返回整数。

输入和预期输出如下:

0            0
14400        144.00
-11800       -118.00
42400        424.00
60200        602.00
217400       2174.00
5000         50.00

我在用:

Cast(Trim(POLAMNT) as Decimal(10,2)) as POLICYAMNT

但它返回的值不带小数。

Hive 正在创建正确的类型。 无论打印出什么结果,都对删除.00有利。 SQL不太友好。 因此,将结果转换回字符串:

cast(cast(trim(POLAMNT) as decimal(10,2)) as string) as POLICYAMNT

这应该恰好有两个小数位。

编辑:

我看错了问题。 您似乎只想要:

cast(trim(POLAMNT) as decimal(10,2)) / 100
Cast(Trim(POLAMNT) as Decimal) / pow(10,2) as POLICYAMNT

是实现我所需要的最快(也是最简洁)的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM