Oracle以逗号分隔的字符串拆分为多行数据实例详解
warning:
这篇文章距离上次修改已过416天,其中的内容可能已经有所变动。
-- 假设我们有一个以逗号分隔的字符串 'A,B,C'
-- 我们想将其拆分为多行数据,每行包含一个值
SELECT TRIM(COLUMN_VALUE) AS value
FROM (
SELECT REGEXP_SUBSTR('A,B,C', '[^,]+', 1, LEVEL) AS COLUMN_VALUE
FROM DUAL
CONNECT BY REGEXP_SUBSTR('A,B,C', '[^,]+', 1, LEVEL) IS NOT NULL
);这段代码使用Oracle的REGEXP_SUBSTR函数和CONNECT BY语法来实现字符串的拆分。REGEXP_SUBSTR函数用于根据正则表达式匹配子串,CONNECT BY用于递归地构建多行结果集。LEVEL是Oracle中的层次查询关键字,它在CONNECT BY语句中用于代表当前的递归层次。这个例子展示了如何将以逗号分隔的字符串转换成多行数据,这是处理和转换数据时常见的需求。
评论已关闭