在 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 扩展工具包,您可以只使用 substr
和 instr
函数。您可能需要多次运行它们,具体取决于相关字符串的重复出现。下面是一个例子:
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 中不使用正则表达式替换字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DataFrame 的字符串列中应用正则表达式替换?