在配置单元中将字符串值强制转换为十进制时为null

cxfofazt  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(291)

我使用的是hive0.13,表中的字符串列中有1.250,99这样的值
我想将这些值转换成十进制,所以我必须将“.”替换为“.”和“.”。结果将是1250.99这是我的hql语句:

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

但是它返回null,我想是因为转换没有成功。有什么问题?
如果不进行转换,它将返回预期的字符串。
更新
我的问题是列中有空格,所以它无法将其转换为十进制值。在转换之前,我已经使用了trim函数。

x759pob2

x759pob21#

试试这个:

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

相关问题