如何在Hive中修剪前导零,我在谷歌搜索太多但我没有得到任何对我的问题有用的正确的东西。
如果数字为“00000012300234”,则需要“12300234”
之类的结果答案 0 :(得分:4)
regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)
以下删除前导零,但如果需要则留下一个(即它不会只是将“0”变为空白字符串)。
hive> SELECT regexp_replace( "00000012300234","^0+(?!$)","") ;
OK
12300234
Time taken: 0.156 seconds, Fetched: 1 row(s)
hive> SELECT regexp_replace( "000000","^0+(?!$)","") ;
OK
0
Time taken: 0.157 seconds, Fetched: 1 row(s)
hive> SELECT regexp_replace( "0","^0+(?!$)","") ;
OK
0
Time taken: 0.12 seconds, Fetched: 1 row(s)
或者使用CAST
- 将int转换为字符串:
hive> SELECT CAST(CAST( "00000012300234" AS INT) as string);
OK
12300234
Time taken: 0.115 seconds, Fetched: 1 row(s)
hive> SELECT CAST( "00000012300234" AS INT);
OK
12300234
Time taken: 0.379 seconds, Fetched: 1 row(s)
hive>
答案 1 :(得分:-1)
无需做什么只是在INT
中强制转换字符串SELECT CAST( "00000012300234" AS INT);
它将返回 12300234
答案 2 :(得分:-2)
假设"00000012300234"
是一个字符串,LTRIM('0', "00000012300234")
将返回字符串"12300234"
。它从字符串的左侧删除字符'0'
。 RTRIM()
在右侧执行相同的操作。