首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用RegExp从Oracle的SELECT中提取前两个单词(包括一个破折号)?

使用RegExp从Oracle的SELECT中提取前两个单词(包括一个破折号)?
EN

Stack Overflow用户
提问于 2017-11-27 12:19:41
回答 2查看 36关注 0票数 0

我有一个列,它在一列中以格式包含多个值:

代码语言:javascript
代码运行次数:0
运行
复制
[word] - [word] - [word] - [word]

所以看起来是:

代码语言:javascript
代码运行次数:0
运行
复制
GEO - MRVES - EKBASDSS - MO

如何编写将提取第一部分的查询。

因此,从上面的例子中,我想要"GEO - MRVES“。每个值都没有设置的长度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-27 12:27:12

您可以使用regexp_substr()

代码语言:javascript
代码运行次数:0
运行
复制
select regexp_substr(col, '[^-]+-[^-]+', 1, 1)
票数 1
EN

Stack Overflow用户

发布于 2017-11-27 12:35:48

使用SUBSTRINSTR的另一种方式

代码语言:javascript
代码运行次数:0
运行
复制
SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, '-', 1, 2) -1) AS col_one
FROM your_table t;

使用INSTR查找-的第二次出现,并从字符串的开头切割到该位置-1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47510864

复制
相关文章

相似问题

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