如何在Postgresql中第4个出现字符之前切断字符串?

时间:2018-06-25 10:54:01

标签: sql string postgresql

我知道在许多数据库中,charindex函数可以接受在第三次出现时获取字符,但postgresql中的strpos不接受它。

基本上,我需要剪切第四个空格(包括最后一个空格)之后的所有内容

如果我有一个像这样的字符串:

FLAT 11, ELMER HOUSE 33-35 

如何在“ HOUSE”之后将其切成正义:

FLAT 11, ELMER HOUSE

不,使用left无效,因为这些字符串非常可变。

1 个答案:

答案 0 :(得分:3)

这是一种方法:

select substring(str || '    ' from '^[^ ]* [^ ]* [^ ]*')

这将查找由空格分隔的字符组(可能为空)。它适用于str中第四位的所有内容。

|| ' '只是为了确保字符串上有四个空格。否则,模式将返回NULL