我需要按如下方式拆分字符串,当我尝试使用split_part没有运气时
select split_part('8 HAMPSHIRE RD',' ',2)
预期产出:HAMPSHIRE RD
答案 0 :(得分:2)
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
);