配置单元sql强制转换返回整数

a0x5cqrl  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(279)

我试图将一个字符串转换成一个十进制数,它一直返回一个整数。
输入和预期输出如下:

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

但它返回的值没有小数点。

uurity8g

uurity8g1#

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

是实现我所需要的最快(最干净)的方法。

u7up0aaq

u7up0aaq2#

Hive正在创造正确类型的东西。无论打印结果是什么,都有利于删除 .00 . sql不是那么友好。因此,将结果转换回字符串:

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

这应该正好有两个小数位。
编辑:
我误解了这个问题。你似乎只是想:

cast(trim(POLAMNT) as decimal(10,2)) / 100

相关问题