扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
substr Oracle中的截取字符串函数。
专注于为中小企业提供网站设计制作、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业平阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
字符串值:start_position,截取字符串的初始位置, Number型,start_position为负数时,表示从字符串右边数起。length截取位数,Number型,其中,length为可选,如果length为空,则返回start_position后面的所有字符。从start_position开始,取出length个字符并返回取出的字符串。
输出结果
The original string str1 is:
Heterological paradoxes are persistent.
The substring str1 copied is: logical
The default substring str3 is:
Heterological paradoxes are persistent.
which is the entire original string.
}
如果Oracle版本不是太低的话,使用 正则表达式函数 REGEXP_SUBSTR 处理。\x0d\x0a\x0d\x0a5个参数\x0d\x0a第一个是输入的字符串\x0d\x0a第二个是正则表达式\x0d\x0a第三个是标识从第几个字符开始正则表达式匹配。(默认为1)\x0d\x0a第四个是标识第几个匹配组。(默认为1)\x0d\x0a第五个是是取值范围:\x0d\x0ai:大小写不敏感;\x0d\x0ac:大小写敏感;\x0d\x0an:点号 . 不匹配换行符号;\x0d\x0am:多行模式;\x0d\x0ax:扩展模式,忽略正则表达式中的空白字符。\x0d\x0a\x0d\x0aSQL SELECT\x0d\x0a 2 REGEXP_SUBSTR(a,'[0-9]+')\x0d\x0a 3 FROM\x0d\x0a 4 test_reg_substr\x0d\x0a 5 WHERE\x0d\x0a 6 REGEXP_LIKE(a, '[0-9]+');
oracle中,截取某个字符串前的字符需要用instr函数和substr函数共同完成。
工具:oracle 10g
步骤:
1、以截取字符串“210-1106000001”中“-”前的部分为例。
2、执行语句为:
select substr('210-1106000001',1,instr('210-1106000001','-')-1) from dual;
3、结果为:
instr函数语法:instr( string1, string2, start_position,nth_appearance )
参数含义:
substr函数语法:substr(strings|express,m,[n])
参数含义:
strings|express :被截取的字符串或字符串表达式。
m 从第m个字符开始截取。
n 截取后字符串长度为n。
一、字符串查找函数 INSTR()
二、字符串截取函数 SUBSTR()
三、实际应用: SUBSTR 和 INSTR 结合使用
例:(1) INSTR('todayisabeautifulday' , 'to')
返回结果:1 (因为字符串索引号从1开始,所以返回1,不是返回0)
(2) INSTR('todayisabeautifulday' , 'day',1, 1)
返回结果: 3 (返回第一次查出 day 的位置)
(3) 若改成 INSTR('todayisabeautifulday' , 'day',1, 2)
则返回结果为第二次出现 day 的位置:18
(4) INSTR('today is a beautiful day' , 'is',1, 1)
返回结果:7 (空格也是一个字符)
例:(1)SUBSTR ('ABCDEFG', 2, 3)
返回结果:'BCD' (从第2个字符开始,截取长度为3的子串)
(2)substr('ABCDEFG', -2)
返回结果:'FG' (从倒数第2个字符开始,截取到源串的末尾)
(3)substr('ABCDEFG', -4, 2)
返回结果:'DE' (从倒数第4个字符开始,截取长度为2的子串)
(4)substr('ABCDEFG', 4, -1)
返回结果: 空字符串 (截取长度小于1时,返回空字符串 )
结合 SUBSTR()和 INSTR()来实现截取字符串中特定字符前后的字符串
(1)截取 “hello,world” 字符串中 “,” 分隔符之前的字符串
(2)截取 “hello,world, ye” 字符串中第1次出现的 “,” 字符和第2次出现的 “,” 字符之间的字符串
参考链接:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流