Redshift中的REGEXP_REPLACE标点

acs*_*254 2 regex sql amazon-redshift

我试图用来REGEXP_REPLACE删除的所有标点符号varchar。我正在使用以下内容:

regexp_replace(d.NAME, [.,\/#!$%\^&\*;:{}=\-_`~()])
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误,说:

陈述1无效。错误:“或”附近的语法错误。

如何解决此问题以删除所有标点符号?

Boh*_*ian 5

首先,字符类中的破折号表示范围,除非它是第一个或最后一个……所以将其放在此处:

[.,\/#!$%\^&\*;:{}=\_`~()-]
Run Code Online (Sandbox Code Playgroud)

并且,您必须将其用引号引起来,并且大多数字符不需要转义:

regexp_replace(d.NAME, '[.,/#!$%^&*;:{}=_`~()-]')
Run Code Online (Sandbox Code Playgroud)