大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果字段存的就是这个,那么这个应该是字符串吧,那么就分几步操作。
成都创新互联致力于互联网品牌建设与网络营销,包括成都网站建设、网站设计、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。成都创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,成都创新互联核心团队十载专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
(1)定位,定位{和:的位置,从现在来看有两种可能,第一种
这是两个字段,分别是{12345:67:8}和{ABC:0:9},那就简单了{肯定是1,所以这个也就不需要定位了,只需要定位第一个冒号的位置。
定位的函数应该是instr
第二种:{12345:67:8}{ABC:0:9}是一个字段的内容,那就麻烦一些,不过也能做,希望不是这样的,因为这个就要麻烦很多了。正则倒是能做,不过正则都要测试,我可没有相应的环境做测试。这里也就不写了,如果是这种,那么自己翻一翻正则函数的用法,应该能写出来。
(2)截取,如果是第一种,那么定位了第一个冒号位置以后,用这个位置-2,也就是
instr(字段,':',1)-2这就是截取的长度,
从第二位开始截取,截取这个长度就可以substr(字段,2,instr(字段,':',1)-2)
这样的话,{12345:67:8}换算到内部就是substr({12345:67:8},2,5(7-2)),【7-2说明5的来源,第一个冒号在第7位】,截取出来就是12345
还是那句话,如果是第二种可能,那么就要找每一个{的位置,然后找在{后面距离最近的冒号的位置,然后再一个个的截取操作,正则应该可以操作,不过我还是那句话,需要测试,意思和这个截取函数差不多,自己好好理解一下应该就能操作了。
如果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]+');
1、将新建好的表aaaa,填充需要查询的数据以"_"或者","为分隔符的两条数据。
2、先挑ID为1的数据进行截取查询演示。
3、如果已知截取字符的长度和特殊字符位置,就可以用substring()函数来从字符串的开始位置,截取到特殊字符出现的位置。
4、使用charindex()函数来返回特殊字符出现的位置,查询结果及语句。
5、使用LEFT()函数和charindex()函数来从字符最左边开始到特殊字符出现的位置。
6、第一个参数表示被截取的字符串,第二个参数表示要在第一个参数中开始截取的位置,第三个参数表示要截取的长度。