regex - Oracle PLSQL regexp_substr 用双引号分隔逗号分隔的字符串
问题描述
我已经看到了如何将逗号分隔的字符串分成如下行的示例:
select distinct id, trim(regexp_substr(value,'[^,]+', 1, level) ) value, level
from tbl1
connect by regexp_substr(value, '[^,]+', 1, level) is not null
order by id, level;
但是,我的问题是,如何在双引号和逗号分隔的字符串上执行此操作?
例如:以上适用于“1,2,3,4,5,6,7”之类的字符串,但是“1”,“2”,“3”,“4,5”,“6,7”呢? 8","9" 使行最终如下所示:
1
2
3
4,5
6,7,8
9
编辑:我在 Oracle 11.2.0.4、11gR2 上。
解决方案
这是另一个解决方案。它必须使用具有编号的所有字符串。我使用数值索引作为基础。
with temp as (
select '"1","2","3",x"4,5","6,73,8","9"' Colmn from dual
)
SELECT regexp_substr(Colmn, '\d{1}', REGEXP_INSTR(Colmn, '\d{1}', REGEXP_INSTR(Colmn, '\d{1}') ,level),1 ) from temp
CONNECT BY REGEXP_COUNT (Colmn,'\d{1}')+1> level
推荐阅读
- architecture - 网关架构设计最佳实践
- javascript - 为什么我的 Node.js Socket.IO 服务器会发出多条消息,尽管它只运行一次?
- php - 使用 PHP 将部分 HTML 添加到文件中
- visual-studio-code - 如何从 Visual Studio Code 关闭(或打开)声音?
- reactjs - 反应 setState 没有正确更新
- c++ - 在 WSL 中使用 Visual Studio 时出现“找不到文件或目录”
- excel - 如何在 Excel 中列出/生成所有可能的组合
- javascript - JS 文件得到一个 net::ERR_ABORTED 404 (Not Found)
- nullpointerexception - JavaFX 切换 fxml 文件:线程中的异常 ... InvocationTargetException
- python - 在 Django 中,我的定义(循环)在其他页面上不起作用