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
这个函数类似于其他编程语言中的`IndexOf`方法,如C#中的`IndexOf`和`LastIndexOf`方法。 #### 二、INSTR函数的基本语法 INSTR函数的基本语法如下: ```sql INSTR(源字符串, 搜索字符串[, 开始位置[, 出现次数]])...
本文将详细介绍`substr`、`substring`、`indexOf`以及`lastIndexOf`这四个方法的用法及其区别,帮助读者更好地理解和应用这些方法。 #### 二、`substr` 方法 `substr`方法用于从一个字符串中提取从指定位置开始的...
js中substr,substring,indexOf,lastIndexOf等的用法 1.substrsubstr(start,length)表示从start位置开始,截取length长度的字符串。 var src=”images/off_1.png”;alert(src.substr(7,3)); 弹出值为:off ...
本文将详细介绍JavaScript中一些常用字符串方法的用法,包括 substr、substring、indexOf、lastIndexOf、split 和 replace。通过这些方法,可以轻松地对字符串进行提取、分割和替换操作。 首先,让我们来看看 ...
通过以上介绍可以看出,`String.IndexOf`、`String.LastIndexOf` 和 `String.Substring` 是C#中处理字符串时非常重要的几个方法。它们可以帮助我们快速定位字符串中的字符或子字符串,以及从中提取特定的部分。掌握...
JavaScript中的indexOf()和lastIndexOf()方法是用于查找字符串中某个子字符串出现的位置的。这两个方法在处理字符串时非常实用,尤其是对于初学者来说,它们是学习JavaScript字符串操作的基础知识之一。下面将详细...
JavaScript 中的 `indexOf` 方法是用于查找字符串中特定字符或子字符串首次出现的位置。这个方法对于处理文本数据和字符串操作非常有用,尤其是在网页开发中。下面将详细介绍 `indexOf` 的用法和相关概念。 ### `...
在JavaScript中,`indexOf`和`lastIndexOf`是两个非常重要的字符串方法,它们用于在字符串中查找特定子字符串的位置。这两个方法都返回子字符串在原字符串中的索引,如果找不到则返回-1。 首先,`indexOf`方法从...
***中的IndexOf、LastIndexOf、IndexOfAny和LastIndexOfAny是.NET框架提供的字符串处理方法,用于在给定的字符串中搜索子串或字符的位置,这些方法在C#编程语言中广泛应用。 IndexOf方法用于查找字符串中指定字符或...
标题中提及的JavaScript中的indexOf、lastIndexOf和substring方法是字符串对象提供的几个基础且非常有用的方法,用于搜索字符串中的子字符串位置或者截取字符串。以下是对这些方法的详细知识点解说。 首先,讨论...
JavaScript 字符串处理方法 JavaScript 语言中提供了多种字符串处理...JavaScript 中的 Split 方法、indexOf 方法、lastIndexOf 方法和 substring 方法都是字符串处理中的重要方法,广泛应用于字符串的操作和处理。
JavaScript中的`indexOf`方法是用于检测一个字符串是否包含指定的子字符串,并返回子字符串的起始位置。这个方法对于在处理字符串时进行条件判断、数据筛选等操作非常实用。下面我们将详细探讨`indexOf`方法的使用...
Java 字符串indexof() 的使用方法 Java 中字符串的 indexof() 方法是用于查找子字符串在字符串中的位置的重要方法。...通过学习 indexOf() 方法的使用方法和相关知识点,我们可以更好地掌握 Java 中的字符串操作。