从hiveql中的字符串中删除最后一个字符

6mw9ycah  于 2021-06-26  发布在  Hive
关注(0)|答案(3)|浏览(2623)

我需要帮助Hive,我已经尝试了很多功能,在Hive,我还没有能够做我需要做的。
看下面的例子:3231220-9
我只需要保留所有的东西,剩下的不需要了。
请帮帮我!

pobjuy32

pobjuy321#

你可以用 split() 也:

hive> select split('3231220-9','-')[0];
OK
3231220
Time taken: 3.994 seconds, Fetched: 1 row(s)
vecaoik1

vecaoik12#

不是像split()函数那样优雅,但这也可以:

select substr('12345678-9', 1, instr('12345678-9','-')-1);
Result: 12345678
wgmfuz8q

wgmfuz8q3#

如果只想保留第一个连字符或其他非数字之前的数字,则:

regexp_replace(myfield,'[^0-9].*','')

如果它始终是一个连字符,结尾后跟一个字符:

regexp_replace(myfield,'-.$','')

相关问题