postgresql split_part - 如何在第一个拆分键后拆分

时间:2014-03-02 06:53:17

标签: postgresql text split

给出文本字符串

foo.bar.baz

如何使用postgresql的split_part函数来获取第一个点后的其余部分?

我想从本文中提取下两个文本:

foo
bar.baz

split_part需要部分数量作为参数,所以

split_part('foo.bar.baz', ''.', 2); 

返回

bar

但不是bar.baz

如何使用此功能或任何其他可用功能获取此功能?

由于

2 个答案:

答案 0 :(得分:2)

我可能会使用子字符串的正则表达形式:

substring('foo.bar.baz' from E'[^.]*\\.(.+)$')

这匹配任意数量的非。字符,然后是一个点,然后是任意数量的字符。因为最后一部分在括号中,所以它被捕获并返回。

答案 1 :(得分:0)

我找到了这个:

SELECT
    SUBSTR(tx_nome, 1, STRPOS(tx_nome, ' ')) as first_name
    , SUBSTR(tx_nome, (STRPOS(tx_nome, ' ') + 1)) as last_nome
FROM my_table [...]