Oracle SQL中实现indexOf和lastIndexOf功能
Oracle, SQL, indexOf, lastIndexOf
今天遇到一个问题,需要将一个格式为1_2_3这样的字符串拆解组成1_3的串,并用SQL更新数据库。
在Oracel中,可以用substr和INSTR函数来实现此功能。
substr的第三个参数为1时,实现的是indexOf功能。
substr的第三个参数为-1时,实现的是lastIndexOf功能。
最后的SQL语句如下:
update ebms_data_table t set t.ref_name = substr(t.name, 0, INSTR(t.name, '_', 1, 1))|| substr(t.name, INSTR(t.name, '_', -1, 1)+1);
(二)
再给大家举个例子:
select
i1.name,
instr(i1.name, '司', 1) + 1 as 公司出现的位置,
instr(i1.name, '分公司', 1) as 分公司出现的位置,
substr(i1.name,
instr(i1.name, '司', 1) + 1,
((instr(i1.name, '分公司', 1)) - (instr(i1.name, '司', 1) + 1))) as subname
from insurance_company1 i1
where i1.name like '%股份有限公司%分公司'
and i1.upcustomer like '%股份有限公司'
查询结果如下:
名字全称 司出现的位置 分公司出现的位置 subName
1 天安保险股份有限公
司伊犁
分公司 11 13 伊犁
2 中国大地财产保险股份有限公
司新疆
分公司 15 17 新疆
3 中国平安财产保险股份有限公
司乌苏
分公司 15 17 乌苏
4 中国平安财产保险股份有限公
司新疆
分公司 15 17 新疆
5 中国平安人寿保险股份有限公
司新疆
分公司 15 17 新疆
6 中国人民财产保险股份有限公
司阿克苏地区
分公司 15 20 阿克苏地区
7 中国人民财产保险股份有限公
司阿勒泰地区
分公司 15 20 阿勒泰地区
8 中国人民财产保险股份有限公
司昌吉回族自治州
分公司 15 22 昌吉回族自治州
后边的subName就是我成功截取的名字,就是我要截取的全名字的中后边不同分公司的字段,目的就是为了要获取不同的字段,然后进行分析。
这里是substr和instr的综合使用。
substr(stirng1,strat,length);截取功能;
解析一下:string1是你要截取的字符串,strat是要开始截取的位置,length是你要截取多少个字符串。
instr(string1,string2,end);是检索功能,
解析一下:string1是你要检索的字符串,string2是你在string1中要查找的字符串,end的意思1代表从字符串的开始检索,-1代表中字符串的末尾开始检索。具体返回值
如果
string1 为零长度
InStr返回 0
string1 为 Null
InStr返回 Null
string2 为零长度
InStr返回 Start 的值
string2 为 Null
InStr返回 Null
string2 找不到
InStr返回 0
在 string1 中找到string2
InStr返回 找到的位置
start 值 > len(string1 )值
InStr返回 0;
当instr将我们要检索字段的位置找到后,即返回所在的位置数据,我们就是可以利用substr函数进行截取,length就是我们我们检索出来的数字的差额。
分享到:
相关推荐
INSTR的第三个参数为1时,实现的是indexOf功能。... 您可能感兴趣的文章:asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法javascript Split方法,indexOf方法、lastIndexOf 方法和subst
js中substr,substring,indexOf,lastIndexOf的用法小结.docx
js中substr,substring,indexOf,lastIndexOf等的用法 1.substrsubstr(start,length)表示从start位置开始,截取length长度的字符串。 var src=”images/off_1.png”;alert(src.substr(7,3)); 弹出值为:off ...
C#中String类的几个方法(IndexOf、LastIndexOf、Substring)
主要介绍了js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解的相关资料,需要的朋友可以参考下
一、IndexOf/LastIndexOf IndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的...
主要介绍了JavaScript中的indexOf()和lastIndexOf()方法使用实例,是JS入门学习中的基础知识,有需要的朋友可以参考下。
indexOf 的用途是在一个字符串中寻找一个字的位置 lastIndexOf 也是找字 , 它们俩的区别是前者从字符串头开始找,后者是从字符串末端开始找。 一但指定的字被找到,就会返回这个字的当前的位置号码。如果没有找到就...
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
indexOf() 和 lastIndexOf() 方法返回的都是指定的子串在另一个字符串中的位置,如果没有找不到子串,则返回 -1。 这两个方法的不同之处在于,indexOf() 方法是从字符串的开头(位置 0)开始检索字符串,而 ...
Split方法: 以下程序例子实现了split和整数字符串互转的用法。。。 [removed] function evil() { var toint=parseInt(“123”);//字符串转换成整形 var intvalue=123; var tostr=intvalue.toString();//类型转换成...
在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny,下面进行详细介绍。 1.IndexOf/LastIndexOfIndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现...