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

Posted

技术标签:

【中文标题】从 hiveql 中的字符串中删除最后一个字符【英文标题】:Remove last characters from string in hiveql 【发布时间】:2018-02-01 21:05:03 【问题描述】:

我需要有关 Hive 的帮助,我在 Hive 中尝试了很多功能,但我无法完成我需要做的事情。

看下面的例子: 3231220-9

我只需要保留所有内容,但不需要“-9”其余部分。

请帮忙!

【问题讨论】:

您要删除的总是“-9”吗?能不能把要求说的更准确一些,再举几个例子? 实际上总是 '-' 后面跟着一个字符.... 【参考方案1】:

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

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

如果它始终是一个连字符,末尾有一个字符:

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

【讨论】:

我会试试这个! :)【参考方案2】:

您也可以使用split()

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于从 hiveql 中的字符串中删除最后一个字符的主要内容,如果未能解决你的问题,请参考以下文章

如何从 python 中的字符串中只删除最后一个括号?

从循环中生成的字符串中删除最后一个字符

如何删除最后一个字符(从数组创建字符串时的逗号)? [复制]

删除文件中的最后一个字符

shell中的%?为啥可以去掉字符串最后一个字符

如何从 PL/SQL 中的字符串中删除最后 3 个单词? [复制]