需要返回多行,可以采用oracle的connect by 命令,行数的获得通过length来获得。 select regexp_substr(‘2001,2002,200103,2005’, ‘[^,]+’, 1, level, ‘i’) as str from dual connect by level <= length(‘2001,2002,200103,2005’) - length(regexp_replace(‘2001,2002,200103,2005’, ‘,’,...
4、将上面REGEXP_SUBSTR的occurrence关联 SELECTNVL(REGEXP_SUBSTR('17,20,23','[^,]+',1, LEVEL,'i'),'NULLL')ASSTR FROMDUAL CONNECTBYLEVEL<=7; STR 17 20 23 NULL NULL NULL NULL 5、优化上面的SQL语句,让生成的行的数量符合实际情况 SELECTREGEXP_SUBSTR('17,20,23','[^,]+',1, LEVEL,'...
1、regexp_like 2、regexp_substr 3、regexp_instr 4、regexp_replace 看函数名称大概就能猜到有什么用了。 regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单: regexp_substr 函数,和 substr 类似,用于拾取合符正则表达式描述的字符子串,语法如下: regexp_instr 函数,和 ...
代码语言:sql AI代码解释 SELECTregexp_substr(temp.STUDENT,'[^,]+',1,LEVEL)ASSTUDENT,regexp_substr(temp.SUBJECT,'[^,]+',1,LEVEL)ASSUBJECT,regexp_substr(temp.SCORT,'[^,]+',1,LEVEL)ASSCORTFROM(SELECT'Student001,Student001,Student002,Student002,Student003'ASSTUDENT,'CHINESE,ENGLISH,CHINESE,...
REGEXP_LIKE(srcstr, pattern [,match_option]) 在该函数中: srcstr:是搜索值 pattern:是正则表达式 match_option:提供了更改默认匹配的选项。它可以包含以下一个或多个值: “c”:使用区分大小写的匹配(默认值) “i”:使用不区分大小写的匹配 “n”:允许匹配任何字符的运算符来匹配换行符 ...
regexp_replace(a, pattern, str3)str3-用于替换的字符串类似replace()注:一般将正则表达式称为“模式”。以下函数的参数列表是“必须”部分,考虑到实用性,一些可选参数未列举出。如果大家有兴趣,需另行查找。以下“模式”函数与相应单行函数功能相同,可参照上文【单行函数】学习。出于篇幅考虑,以下函数的示例...
REGEXP_REPLACE(str1,pattem[,str2[,pos[,occ[,par]]]):用于按照特定正则表达式的规则替换字符串。其中参数str1指定源字符表达式,pattem指定正则表达式,str2指定替换字符串,pos指定起始搜索位置,occ指定替换出现的第几个字符串,par指定默认匹配操作的文本串。 代码语言:javascript 代码运行次数:0 运行 AI代码解释...
可以通过REGEXP_SUBSTR函数(配合正则表达式)来实现字符串截取。举例:sql:select regexp_substr('CYJ8-ABC','[0-9]+') from dual;以上sql执行结果:8;备注:REGEXP_SUBSTR函数格式如下:function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr :需要进行正则处理的字符...
名称:regexp_count(p1 , pattern , target_str ) 功能: 将字符串中的满足模式的子串替换为目标字符串 参数: p1: 目标字符串, pattern: 匹配模式 ,target_str : 目标字符串 返回值: 字符串 --:将 'Joe Smith'中间的多个空格替换为1个空格 SELECT REPLACE('Joe Smith',' ')AS replace FROM dual; --...
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...