Netezza SQL - 如何用条件替换两个逗号之间的字符串

Netezza SQL - How to replace string between two Comma's, with a condition

我有一个字符串,我想在两个逗号之间找到:N,并将两个逗号之间的数据数据替换为空白。示例如下。

目前正在手动完成,将其导出到 excel,进行更改并将其导回数据库。我敢肯定会有更好的方法在不需要 export/import 的情况下在编码中完成此操作。

示例:

 "This is sting one:Y,this is string Two:X,This is string Three:N,This is string four:N,This is string five:X,"

期望的结果:

"This is sting one:Y,this is string Two:X,This is string five:X,"

非常感谢您的帮助。

一个

我会使用 sql extensions toolkitregexp_replace

我发现正则表达式的 nz 实现似乎与我的版本中的 ? 非贪婪修饰符有一些问题。此处有效的表达式是 ,[^(:N)]+:N.

FORTUNE_DB(ADMIN)=> select * from so;
                                                     COL1
--------------------------------------------------------------------------------------------------------------
This is sting one:Y,this is string Two:X,This is string Three:N,This is string four:N,This is string five:X,

FORTUNE_DB(ADMIN)=> select regexp_replace(col1,',[^(:N)]+:N','') from so;
                         REGEXP_REPLACE
-----------------------------------------------------------------
 This is sting one:Y,this is string Two:X,This is string five:X,