首次出现字符后剪切字符串

Gis*_*nas 7 sql string postgresql pattern-matching delimiter

我有像'keepme:cutme'或'string-without-separator'这样的字符串,它们应分别成为'keepme'和'string-without-separator'.这可以在PostgreSQL中完成吗?我试过了:

select substring('first:last' from '.+:')
Run Code Online (Sandbox Code Playgroud)

:如果:字符串中没有,则会离开,并且将无法工作.

Erw*_*ter 18

用途split_part():

SELECT split_part('first:last', ':', 1) AS first_part
Run Code Online (Sandbox Code Playgroud)

如果分隔符不存在,则返回整个字符串.获得第2或第3部分等很简单

比使用正则表达式匹配的函数快得多.由于我们有一个固定的分隔符,我们不需要正则表达式的魔力.

有关: