2015-02-05 41 views
1

我使用的是Hive 0.13,並且在表格值的STRING列中有1.250,99
我想將這些值轉換爲十進制,因此我必須替換「。 「按「」和「,」按「」。其結果將是1250.99 這是我的HQL一句:在將字符串值轉換爲Hive中的十進制時爲NULL

cast(regexp_replace(regexp_replace(price, '\\.',''), ',','.') as decimal(18,6)) 

但它返回NULL,我想是因爲轉換不會成功。問題是什麼?
如果我不做轉換,它會返回預期的字符串。

UPDATE

我的問題是,有在列白色的空間,因此不能將其轉換成十進制值。在進行轉換之前,我使用了修剪功能。

回答

0

試試這個:

select cast(regexp_replace(regexp_replace('1.234,56','\\.',''),'\,','\.') as decimal(10,2)); 
相關問題