Postgresql:在某些类型的数字之间插入空格

时间:2017-09-22 15:57:58

标签: postgresql regexp-replace

与我以前的帖子相关 Postgresql: removing spaces between certain type of digits, 我想做相反的事情,即在邮政编码之间插入空格。 我的列可能包含'01031970 São Paulo SP, BR'

等地址

我想在第四和第五个数字之间插入一个空格,即 '0103 1970 São Paulo SP, BR'

有关如何使用regexp_replace

进行操作的任何想法

1 个答案:

答案 0 :(得分:1)

使用正则表达式:

select regexp_replace(str, '(^.{4})(.*)', '\1 \2')
from (
    values('01031970 Sao Paulo SP, BR')
    ) v(str);

       regexp_replace       
----------------------------
 0103 1970 Sao Paulo SP, BR
(1 row)     

没有正则表达式(对于较大的数据可能会快一点):

select concat(left(str, 4), ' ', right(str, -4))
from (
    values('01031970 Sao Paulo SP, BR')
    ) v(str);

           concat           
----------------------------
 0103 1970 Sao Paulo SP, BR
(1 row)