正则表达式|在字符串末尾添加3个字符

问题描述

我有多个使用string_agg函数的查询,并且我们正在迁移到较新的postgres版本,并且此特定版本现在需要一个定界符,我们只需要将此字符串,''添加到每一行使用string_agg的地方。

这是我们目前拥有的一个例子:

string_agg('|'||mu_to.unit||(pa.measure*(mu.base_multiplier/mu_to.base_multiplier))::numeric||CAST(' ' AS varchar)||mu_to.unit_display)

它需要像这样结束:

  string_agg('|'||mu_to.unit||(pa.measure*(mu.base_multiplier/mu_to.base_multiplier))::numeric||CAST(' ' AS varchar)||mu_to.unit_display,'')

然后我们有这样的东西:

string_agg('#attribute_'||attribute_id::varchar||':'||attribute) as attr

它需要像这样结束:

string_agg('#attribute_'||attribute_id::varchar||':'||attribute,'') as attr

有67个报告,其中这些行随机出现,但并不总是相同的字段/表名,因此,我正在寻找一种方法来一次性更改所有内容并批量添加定界符,以免手动编辑所有67个。 就像找到 string_agg(寻找最后一个括号并添加,''

我想这将是某种搜索替换,但不是100%确定如何实现。

谢谢

解决方法

您现在正在使用什么?从未有PostgreSQL的发行版,其中string_agg的第二个参数是可选的。 (在9.0的开发周期中有一段时间是可选的,但在发布前已更改)。您是否真的使用了10年的PostgreSQL开发版本?

也许您有一个名为string_agg的用户定义的聚合,它带有一个参数?但是在那种情况下,为什么不重新创建升级方法呢?

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...