Oracle SQL 字符串按逗号拆分 - 使用 REGEXP_SUBSTR 函数
Oracle SQL 如何按照逗号拆分内容
可以使用 Oracle SQL 中的 REGEXP_SUBSTR 函数和正则表达式来实现按逗号拆分字符串的功能。
例如:
SELECT REGEXP_SUBSTR('JS2306080011,JS2306080010', '[^,]+', 1, LEVEL) AS separated_value
FROM DUAL
CONNECT BY LEVEL <= REGEXP_COUNT('JS2306080011,JS2306080010', ',') + 1;
输出结果为:
| separated_value | |------------------| | JS2306080011 | | JS2306080010 |
解释:
这条 SQL 语句中的 REGEXP_SUBSTR 函数接收四个参数:
- 要拆分的字符串,即 'JS2306080011,JS2306080010';
- 正则表达式,表示拆分的规则。这里使用 '[^,]+' 表示匹配一个或多个非逗号的字符;
- 开始匹配的位置,这里设为 1;
- 返回的匹配结果的索引号,使用
LEVEL表示。
接下来使用 CONNECT BY LEVEL 和 REGEXP_COUNT 函数来循环执行 REGEXP_SUBSTR 函数,直到拆分完所有的子串。
原文地址: https://www.cveoy.top/t/topic/owLb 著作权归作者所有。请勿转载和采集!