在postgresql中,如何在第4次出现一个字符之前切断字符串?[英] How to cut off strings before 4th occurrence of a character in postgresql?

本文是小编为大家收集整理的关于在postgresql中,如何在第4次出现一个字符之前切断字符串?的处理方法,想解了在postgresql中,如何在第4次出现一个字符之前切断字符串?的问题怎么解决?在postgresql中,如何在第4次出现一个字符之前切断字符串?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

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

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

如果我有这样的字符串:

FLAT 11, ELMER HOUSE 33-35 

如何在"HOUSE"之后将其剪掉以将其变为just:

FLAT 11, ELMER HOUSE

不,使用 left 是行不通的,因为这些字符串非常多变.

推荐答案

这里有一个方法:

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

这会查找由空格分隔的字符组(可能为空).它适用于 str 中第四个空格之前的所有内容.

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

本文地址:https://www.itbaoku.cn/post/1764167.html

相关标签/搜索