gpt4 book ai didi

sql - 在 SQL 中为整个列提取两个分隔符之间的值

转载 作者:行者123 更新时间:2023-11-29 12:49:33 26 4
gpt4 key购买 nike

我正在寻找一种方法来提取整个列中两个分隔符之间的所有子字符串。我已经找到了分别为每个字符串执行此操作的方法,但我需要一些可以应用于整个列的东西。

例如,如果我有一个名为“NAMES”的列,其中包含以下值:

  • 1235_brandon_098410090
  • 1242353_sam_1920420101222
  • 134214_kristein_39402384

我希望我的输出是

  • 布兰登
  • 山姆
  • 克莉斯坦

我该怎么做?

我试过这个:regex_substr(名称,'_(.*?)_'

查询错误:error: function regex_substr(character varying, unknown) does not exist

最佳答案

在 MySQL 中,我认为你可以使用 substring_index():

select substring_index(substring_index(names, '_', 2), '_', -1)

这会提取下划线分隔的第二个值,这是所有样本数据表明需要的值。

编辑:

您的错误消息看起来像 Postgres。这在 Postgres 中是等价的:

select v.*, split_part(names, '_', 2)
from (values ('1242353_sam_1920420101222')) v(names);

在 Postgres 中,您也可以将 substring() 与模式一起使用:

select v.*, substring(names from '[A-Za-z]+')

关于sql - 在 SQL 中为整个列提取两个分隔符之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57641863/

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