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 toolkit 和 regexp_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,
我有一个字符串,我想在两个逗号之间找到: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 toolkit 和 regexp_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,