首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除红移中第三个特定字符之后的所有字符?

问如何删除红移中第三个特定字符之后的所有字符?
EN

Stack Overflow用户
提问于 2020-08-21 23:57:58
回答 2查看 611关注 0票数 1

假设我有一个类似'aaa_bbb_ccc_ddd_eee'的字符串。

如何使用红移将所有内容留在第三个下划线_之前。

因此,我需要获取'aaa_bbb_ccc'。

aaa_bbb_ccc_ddd_eee => aaa_bbb_ccc

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-22 00:00:20

我认为这将会起作用:

代码语言:javascript
复制
select regexp_substr(string, '^[^_]+_[^_]+_[^_]+')

Here是一个db<>fiddle。这使用了MySQL,因为Postgres没有regexp_substr() (它使用regexp_match()),但是Redshift和MySQL都有。

票数 1
EN

Stack Overflow用户

发布于 2020-08-22 00:15:58

您也可以使用split_part来实现这一点

代码语言:javascript
复制
select split_part(txt,'_',1) ||'_'|| split_part(txt,'_',2)||'_'|| split_part(txt,'_',3)

使用left和charindex的细微变化

代码语言:javascript
复制
select left(txt,charindex(split_part(txt,'_',4),txt)-2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63526194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档