使用 regexp_substr 按顺序拆分 Oracle 中的字符串

Split string in Oracle with regexp_substr in order(使用 regexp_substr 按顺序拆分 Oracle 中的字符串)
本文介绍了使用 regexp_substr 按顺序拆分 Oracle 中的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Oracle 数据库中有一个字符串,我的字符串是:'bbb;aaa;qqq;ccc'

I have a string in Oracle database, my string is: 'bbb;aaa;qqq;ccc'

我使用正则表达式来分割我的字符串:

I used regexp for split my string:

select distinct trim(regexp_substr('bbb;aaa;qqq;ccc','[^;]+', 1,level) ) as q 
from dual
connect by regexp_substr('bbb;aaa;qqq;ccc', '[^;]+', 1, level) is not null ;

我想按顺序拆分它,我希望总是以下输出:

I want to split it in order, I expected the below output always:

bbb
aaa
qqq
ccc

因为 subString 的顺序对我来说非常重要.但是这个查询的结果不是有序的:

because order of the subString are very important for me. but the result of this query is not in order:

qqq
aaa
bbb
ccc

推荐答案

您不需要 DISTINCT 即可获得结果;此外,要以给定的顺序获得结果,您只需要一个 ORDER BY 子句:

You don't need a DISTINCT to get your result; besides, to get the result in a given order, all you need is an ORDER BY clause:

select trim(regexp_substr('bbb;aaa;qqq;ccc','[^;]+', 1,level) ) as q 
from dual
connect by regexp_substr('bbb;aaa;qqq;ccc', '[^;]+', 1, level) is not null
order by level

这篇关于使用 regexp_substr 按顺序拆分 Oracle 中的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)