Oracle查询在每个下划线后选择前3个字符[关闭]

Posted

技术标签:

【中文标题】Oracle查询在每个下划线后选择前3个字符[关闭]【英文标题】:Oracle query to select first 3 characters after every underscore [closed] 【发布时间】:2013-07-23 17:11:48 【问题描述】:

我需要编写 oracle sql 查询,以便在每个下划线字符之后仅从字符串中选择前 3 个字符。

例如:

'oracle_mydatabase_table' - 原始字符串,

'ora_myd_tab' - 需要的输出。

谁能帮我编写 sql 查询或 pl/sql 程序来做到这一点?

【问题讨论】:

你必须先尽力而为。 不,等一下——根据经验,有人会给你 15 分的代码。当然,你自己也不会学会寻找新知识的方法。 @DavidAldridge - 是的,OP 很懒惰。但他的问题很有趣。 @DavidAldridge - 我认为回答这样的问题是有益的。通过提供答案而不是学习如何在他/她/它自己的 OP 上做这件事,除了如何成为一只鹦鹉之外,什么都学不到。由于不学习,OP 课程失败。由于课程失败,OP不会成为我的同事。所以,有益的...... 【参考方案1】:
regexp_replace(your_string, '((^|_)[^_]1,3)[^_]*', '\1')

【讨论】:

非常感谢。正如预期的那样,它对我来说工作正常。 :)

以上是关于Oracle查询在每个下划线后选择前3个字符[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用于选择前 3 个字符的 Sql 查询

选择 mysql 查询以获取前 100 个数字(1-100)[关闭]

Oracle SQL查询选择[关闭]

3.windows-oracle实战第二课 -表的管理

如何在 Oracle SQL 中选择一个子字符串直到一个特定的字符?

查找特定字符串格式的 Oracle 查询