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

时间:2016-01-29 11:58:15

标签: sql netezza

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

目前手动完成,将其导出到excel,进行更改并将其导回数据库。我确信在不需要导出/导入的情况下,可以更好地在编码中完成此操作。

示例:

 "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,"

真的很感谢你的帮助。

A

1 个答案:

答案 0 :(得分:1)

我会使用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,