【问题标题】:PostgreSQL - Substring to nth occurence of characterPostgreSQL - 第 n 次出现字符的子字符串
【发布时间】:2022-01-18 20:31:02
【问题描述】:

我正在尝试运行一个查询,该查询返回一个值的子字符串,直到特定字符的第 n 次出现。

例如:

这是abc|123|xyz098|password|xxxxx 的值,我想得到abc|123|xyz098 所以直到第三个'|'。分隔符之间的字符数发生变化,所以我不能使用固定索引。

我的想法是使用 SUBSTRING() 和 POSITION()。但是我没有成功使用它来达到第 n 次出现。有人有解决办法吗?

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    你可以使用regexp_matches:

    select regexp_matches('abc|123|xyz098|password|xxxxx', '\w+\|\w+\|\w+(?=\|)')
    

    【讨论】:

      【解决方案2】:

      对于字符串结果,这个:

      select split_part('abc|123|xyz098|password|xxxxx', split_part('abc|123|xyz098|password|xxxxx','|',4),1);
      

      【讨论】:

        猜你喜欢
        • 2010-12-25
        • 2016-05-07
        • 2021-02-10
        • 2016-07-25
        • 2021-04-07
        • 1970-01-01
        • 2015-11-16
        • 2018-08-24
        相关资源
        最近更新 更多