如果金额是"$0012304“,那么我希望结果像"$12304”,如果金额是"$0000000“,那么"$0”
当我使用regexp_replace(amount,'^?0', '')时,它将替换列中的所有零,并给出$1234而不是$12304的结果。
我想在删除所有前导零之后,将"$“放在amount前面。
发布于 2019-03-21 04:02:40
删除美元符号如果存在,转换为双精度(它将删除前导零),与美元符号连接:
select concat('$',cast(regexp_replace('$000001','^\\$','') as double))结果:
$1.0如果数字仅为整数,请使用bigint或int而不是double
如果美元符号不存在并且全为零,则此方法将起作用。
发布于 2019-03-21 01:34:03
根据链接的问题(可能重复),您可以更改选择以获得您想要的效果。在这里,我们匹配字符串开头的“$”,后跟任意数量的0,删除它,然后再添加回来。
SELECT some_string,
REGEXP_REPLACE(some_string, "^\\$0+", '$') stripped_string
FROM db.tbl*已编辑,以便为每个反馈添加额外的斜杠。
发布于 2019-03-21 01:39:34
您可以尝试以下代码:
select regexp_replace(substring('$0012304',2),'^0+?','$') from hive_table;第一个子字符串,然后用$替换它。
https://stackoverflow.com/questions/55265683
复制相似问题