REGEXP_SUBSTR函数的第一个参数是要拆分的字符串。 第二个参数是正则表达式,[^,]+表示匹配除逗号以外的任意字符。 第三个参数是开始搜索的位置,这里设为1。 LEVEL是Oracle中的伪列,用于生成行号。 优势: 使用正则表达式可以更灵活地匹配不同格式的字符串。 可以在查询中直接使用,无需创建额外的函数或存储过程。
connectbyrownum<=length(regexp_replace(id,'[^,]+'))+1;/*结果: 2*/ 2、获取差集(差异值): selectregexp_substr(id,'[^,]+',1, rownum) idfrom(select'1,2,3,5'idfromdual) connectbyrownum<=length(regexp_replace(id,'[^,]+'))+1minus--取差集selectregexp_substr(id,'[^,]+',1,...
connectbyrownum<=length(regexp_replace(id,'[^,]+'))+1;/*结果: 2*/ 2、获取差集(差异值): selectregexp_substr(id,'[^,]+',1, rownum) idfrom(select'1,2,3,5'idfromdual) connectbyrownum<=length(regexp_replace(id,'[^,]+'))+1minus--取差集selectregexp_substr(id,'[^,]+',1,...
REGEXP_SUBSTR 结合 CONECT BY LEVEL 代码语言:sql 复制 SELECTregexp_substr(temp.STUDENT,'[^,]+',1,level)STUDENTFROM(SELECT'Student001,Student002,Student003'STUDENTFROMdual)tempCONNECTBYlevel<=REGEXP_COUNT('Student001,Student002,Student003','[^,]+');--Student001--Student002--Student003 代码语...
CONNECT BY LEVEL <= LENGTH('17,20,23') - LENGTH(REGEXP_REPLACE('17,20,23', ',', ''))+1; 结果: STR --- 17 20 23 Oracle正则表达式(regularexpression) Oracle支持正则表达式的内置函数 Oracle支持正则表达式函数举例。 Regexp_substr:用来提取一个字符串的一部分。 Reg...
在Oracle中,可以使用CONNECT BY LEVEL语句和REGEXP_SUBSTR函数来实现根据逗号将一行数据拆分成多行数据。以下是一个示例:假设有一个包含逗号分隔的字符串的表,例如:...
SELECTREGEXP_SUBSTR(string, '[^特定字符]+', 1, LEVEL, 'i')as分割后结果 FROMDUAL CONNECTBYLEVEL<=特定字符在字符串当中出现的次数+1; 1. 2. 3. 4. 5. 6. 7. 进一步优化 SELECTREGEXP_SUBSTR(string, '[^特定字符]+', 1, LEVEL, ...
SELECT SUBSTR(column_name, 1, INSTR(column_name, ',', 1, LEVEL) - 1) as part FROM table_name CONNECT BY LEVEL <= LENGTH(column_name) - LENGTH(REPLACE(column_name, ',', '')) + 1; 复制代码 这些方法可以根据具体情况选择适合的方式来拆分字符串。 0 赞 0 踩最新...
select distinct regexp_substr('020101:1:13,020101:1:175,020301:1:107+020401:1:140-020501:1:107,020301:1:107*020401:1:140/020501:1:107','[^,|+|*|/|-]+', 1, level) as str from dual connect by level <= regexp_count('020101:1:13,020101:1:175,020301:1:107+020401...
LEVEL --- 1 2 3 4 5 6 7 4、将上面REGEXP_SUBSTR的occurrence关联 [sql] SELECT NVL(REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i'), 'NULLL') AS STR FROM DUAL CONNECT BY LEVEL <= 7; STR www.2cto.com --- 17 ...