在 hive 中将 varchar(7) 转换为十进制 (7,5)

问题描述 投票:0回答:1

我有一个像蜂巢表中的值

0050000
0100000
0005000 

我想将其转换为十进制(7,5) 我试过了

SELECT CAST(column_A AS DECIMAL(7,5)) AS converted_column
FROM table_name;

但显示结果为 NULL 谁能建议这个问题的解决方案。

期待 结果应该是 0.05000

sql hadoop hive
1个回答
0
投票

如果您尝试将 Hive 表中存储为字符串的值转换为十进制 (7,5),您首先需要删除所有前导零,因为它们在十进制数字中并不重要。然后您可以将这些值转换为十进制。具体方法如下:

SELECT CAST(LTRIM(column_A, '0') AS DECIMAL(7,5)) AS converted_column
FROM table_name;

此 SQL 查询将从 column_A 中的值中删除前导零,然后将其转换为十进制 (7,5)。这应该会给你想要的结果,没有 NULL 值。

© www.soinside.com 2019 - 2024. All rights reserved.