十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果Oracle版本不是太低的话,使用 正则表达式函数 REGEXP_SUBSTR 处理。
创新互联-专业网站定制、快速模板网站建设、高性价比富民网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式富民网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖富民地区。费用合理售后完善,10余年实体公司更值得信赖。
5个参数
第一个是输入的字符串
第二个是正则表达式
第三个是标识从第几个字符开始正则表达式匹配。(默认为1)
第四个是标识第几个匹配组。(默认为1)
第五个是是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
SQL SELECT
2 REGEXP_SUBSTR(a,'[0-9]+')
3 FROM
4 test_reg_substr
5 WHERE
6 REGEXP_LIKE(a, '[0-9]+');
可以使用substr函数及instr函数共同实现:
如,字符串为:123-asdf-119
现在要截取两个“-”中间的字符串,可用如下语句:
select substr('123-asdf-119',instr('123-asdf-119','-')+1,instr('123-asdf-119','-',instr('123-asdf-119','-')+1)-instr('123-asdf-119','-')-1) from dual;
查询结果:
instr函数:
语法如下:
instr( string1, string2, start_position,nth_appearance )
substr函数:
substr(string,start,length)
string - 指定的要截取的字符串
start - 必需,规定在字符串的何处开始
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾的指定位置开始
0 - 在字符串中的第一个字符处开始
length - 可选,指定要截取的字符串长度,缺省时返回字符表达式的值结束前的全部字符。
用instr确定指定字符的位置,开始截取的位置就是这个位置+1,再用substr截取剩余字符。以你给的字符串为例:
SQL
select
substr('D:\AssetsManagement\resource\ehcache\test.txt',instr('D:\AssetsManagement\resource\ehcache\test.txt','\',-1,1)+1)
from
dual;
SUBSTR('D:\ASSETSMANAGEMENT\RE
------------------------------
test.txt
1、将新建好的表aaaa,填充需要查询的数据以"_"或者","为分隔符的两条数据。
2、先挑ID为1的数据进行截取查询演示。
3、如果已知截取字符的长度和特殊字符位置,就可以用substring()函数来从字符串的开始位置,截取到特殊字符出现的位置。
4、使用charindex()函数来返回特殊字符出现的位置,查询结果及语句。
5、使用LEFT()函数和charindex()函数来从字符最左边开始到特殊字符出现的位置。
6、第一个参数表示被截取的字符串,第二个参数表示要在第一个参数中开始截取的位置,第三个参数表示要截取的长度。