在第一个空格之后直到结束

时间:2017-07-18 11:15:18

标签: postgresql postgresql-9.4

我需要按如下方式拆分字符串,当我尝试使用split_part没有运气时

select split_part('8 HAMPSHIRE RD',' ',2)    

预期产出:HAMPSHIRE RD

2 个答案:

答案 0 :(得分:2)

使用regexp_replace()

div

使用字符串操作函数的替代解决方案:

select regexp_replace('8 HAMPSHIRE RD', '.*?\s', '');

 regexp_replace 
----------------
 HAMPSHIRE RD
(1 row)

如果您想跳过第一个单词,如果它只包含数字,您应该使用with my_table(str) as ( values ('8 HAMPSHIRE RD') ) select right(str, -strpos(str, ' ')) from my_table; (数字)而不是\d(任何字符):

.

答案 1 :(得分:1)

没有正则表达式的更便宜的解决方案:

SELECT substring (
          '8 HAMPSHIRE RD'
          FROM position(' ' IN '8 HAMPSHIRE RD') + 1
       );