如何在 Hive 中修剪前导零

Ash*_*ngh 1 sql hadoop hive

如何在 Hive 中修剪前导零,我在谷歌上搜索了太多,但没有得到任何对我的问题有用的正确信息。

如果数字是“00000012300234”想要像“12300234”这样的结果

Ron*_*tel 6

您可以使用以下方法实现:regexp_replace 字符串函数

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)
Run Code Online (Sandbox Code Playgroud)

或使用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> 
Run Code Online (Sandbox Code Playgroud)