gpt4 book ai didi

postgresql - 从一条记录中减去多个字符串

转载 作者:行者123 更新时间:2023-11-29 13:53:00 26 4
gpt4 key购买 nike

我是 Postgres 查询的新手。我正在尝试根据特定集从列的每个记录中提取子字符串。 假设,我从关键字“开始”和“结束”之间的每条记录中提取字符串。所以问题是它可以在一条记录中多次出现“开始”和“结束”,并且需要提取每组“开始”和“结束”关键字之间发生的内容。

enter image description here

我们是否有可能通过 Postgres 中的单个查询来实现这一点,而不是创建一个过程?如果是,能否请您对此提供帮助或重新引导我在哪里可以找到相关信息?

最佳答案

假设/总是分隔元素,可以使用string_to_array()将字符串转换成多个元素,使用unnest()来将数组转换为结果。然后,您可以使用 regexp_replace() 去除花括号中的分隔符:

select d.id, regexp_replace(t.name, '{start}|{end}', '', 'g')
from the_able d
cross join unnest(string_to_array(d.body,'/')) as t(name);

SQLFiddle 示例:http://sqlfiddle.com/#!15/9eecb7db59d16c80417c72d1e1f4fbf1/8863

关于postgresql - 从一条记录中减去多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37399723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com