如何格式化字符并在字符串之间插入字符-Postgresql

kim*_*n12 1 sql postgresql postgresql-9.1 postgresql-9.2

我有这张桌子。

member_id | phone_number -----------+-------------- 1 | 09151234567 2 | 09904897851 3 | 09196332111 4 | 09957935412 5 | 09251279633 6 | 09357489412 7 | 09155974684 (7 rows)

我将 Phone_number 列格式化为(63)xxxxxxxxx。使用此代码
update member set phone_number = regexp_replace(phone_number, '0(.)', '(63)');

member_id | phone_number
-----------+--------------- 1 | (63)151234567 2 | (63)904897851 3 | (63)196332111 4 | (63)957935412 5 | (63)251279633 6 | (63)357489412 7 | (63)155974684 (7 rows)

现在我需要再次将此列更新为这种格式(63)xxx-xxxxxx。我不想替换字符,我需要在字符串之间插入一个字符。我尝试过使用子字符串 regexp_replace 但失败了。我做错事了。我确实发现了与此相关的问题,但它们都是关于字符串替换的。

kli*_*lin 5

您可以通过几种方式做到这一点,我喜欢使用right()left()

update member 
set phone_number = format('%s-%s', left(phone_number, 7), right(phone_number, -7));
Run Code Online (Sandbox Code Playgroud)