在 Hive 中用空替换单引号(')

Posted

技术标签:

【中文标题】在 Hive 中用空替换单引号(\')【英文标题】:Replace single quote(') with nothing in Hive在 Hive 中用空替换单引号(') 【发布时间】:2021-05-16 09:07:57 【问题描述】:

我有一个功能可以用下面的内容替换不同类型的字符。

CAST(TRANSLATE(REGEXP_REPLACE(UPPER(number),' |,|-|/|&|_|''''',''),'.|(|)','') as string) as number

一切正常,除了 ''''' 部分,我想用任何内容替换单引号/撇号。

例子:

TYLER'SCOFFEE should come out as TYLERSCOFFEE

我查看了这个论坛的示例,似乎我们可以使用反斜杠来实现上述目的,但是当我使用下面这样的反斜杠时,它会引发错误。

select CAST(TRANSLATE(REGEXP_REPLACE('TYLER\'SCOFFEE',' |,|-|/|&|_|'\'',''),'.|(|)','') as string) as number;
Error: Error while compiling statement: FAILED: ParseException line 1:68 character '\' not supported here (state=42000,code=40000)

有人可以帮助我解决我的问题吗?谢谢。

【问题讨论】:

【参考方案1】:

使用双引号正则表达式。双引号内,单引号被屏蔽:

select 'TYLER\'SCOFFEE' as original_str, regexp_replace('TYLER\'SCOFFEE',"'",'') result;

结果:

original_str    result
TYLER'SCOFFEE   TYLERSCOFFEE

另外如果你需要用相同的替换来替换很多不同的字符,把它们全部放入[],不需要使用管道|

select regexp_replace('TYLER\'SCOFFEE ,-/&_', 
                      "[ ,-/&_']", 
                      '')

结果:

TYLERSCOFFEE

【讨论】:

。谢谢,是的,将使用 []

以上是关于在 Hive 中用空替换单引号(')的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:如何在表数据中用单引号查找和替换多引号

sql语句中有单引号怎么办

sql语句插入的数据中含有单引号怎么办?

在 Python 中用单引号或双引号提取字符串

如何用sql语句插入一个带有单引号的值

sql查询语句,where条件中包含单引号的解决方案