在 netezza 中不使用正则表达式替换字符串

Posted

技术标签:

【中文标题】在 netezza 中不使用正则表达式替换字符串【英文标题】:Replacing a string without using regular expression in netezza 【发布时间】:2016-02-02 05:38:36 【问题描述】:

有什么方法可以在不使用正则表达式函数的情况下替换 netezza sql 中的字符串(即 regexp_replace()) 例如: 替换('完美','fect','fume')

TIA

【问题讨论】:

【参考方案1】:

如果没有 SQL 扩展工具包,您可以只使用 substrinstr 函数。您可能需要多次运行它们,具体取决于相关字符串的重复出现。下面是一个例子:

    select substr(a.txt,1,instr(a.txt,'fect')-1)
          ||'fume'
          ||substr(a.txt,instr(a.txt,'fect')+length('fect'),255)
    from (select 'perfect' as txt) a

【讨论】:

||substr(a.txt,instr(a.txt,'fect')+length('fect'),255) 是做什么的?没有这个,查询已经返回“香水”。 如果原始字符串是perfect chanel no 5,额外的部分将返回perfume chanel no 5【参考方案2】:

如果您安装了 SQL 扩展工具包,那么您可以使用:

select sql_functions..replace('prefect', 'fect', 'fume')

【讨论】:

我没有安装任何工具包。有没有别的办法。我想在没有工具包的情况下实现这一点。谢谢:)

以上是关于在 netezza 中不使用正则表达式替换字符串的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式替换在 PHP 中不起作用

如何在 DataFrame 的字符串列中应用正则表达式替换?

在正则表达式中转义特殊字符

notepad++正则表达式替换,在匹配文本前插入字符,如何做到?

JavaScript正则表达式修饰符

关于grep的使用以及正则表达式