Postgresql:删除某些类型的数字之间的空格

Postgresql: removing spaces between certain type of digits

我有一个地址列,例如 '01031 970 São Paulo SP, BR'

我想删除邮政编码之间的空格。邮政编码可以出现在地址的任何地方,例如'São Paulo 01031 970 SP, BR'。 结果应该是 'São Paulo 01031970 SP, BR''01031970 São Paulo SP, BR'

regexp_replace(address, ,'(\s*[0-9]{5}\s+[0-9]{3}\s+)','(\s*[0-9]{5}[0-9]{3}\s+)', 'g')

显然行不通,但我正在寻找可以完成这项工作的等效产品。

试试这个查询:

update your_table
set address = regexp_replace(address, '([0-9]{5})\s+([0-9]{3})', '', 'g')