`

Oracle SQL中实现indexOf和lastIndexOf功能,substr和instr用法

阅读更多
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就是我们我们检索出来的数字的差额。

分享到:
评论
3 楼 zhangyinhu8680 2013-03-23  
jz20110918 写道
想问问楼主,sqlserver的 SQL语句是如何实现indexOf和lastIndexOf功能,跟substr和instr用法 一致吗????真心求教!!!

数据库我只用过oracle,sqlServer我我没有接触过,不好意思!
2 楼 zhangyinhu8680 2013-03-23  
数据库我只用过oracle,sqlServer我我没有接触过,不好意思!
1 楼 jz20110918 2013-03-20  
想问问楼主,sqlserver的 SQL语句是如何实现indexOf和lastIndexOf功能,跟substr和instr用法 一致吗????真心求教!!!

相关推荐

    Oracle SQL中实现indexOf和lastIndexOf功能的思路及代码

    INSTR的第三个参数为1时,实现的是indexOf功能。... 您可能感兴趣的文章:asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法javascript Split方法,indexOf方法、lastIndexOf 方法和subst

    INSTR的用法 Oracle里的Indexof

    这个函数类似于其他编程语言中的`IndexOf`方法,如C#中的`IndexOf`和`LastIndexOf`方法。 #### 二、INSTR函数的基本语法 INSTR函数的基本语法如下: ```sql INSTR(源字符串, 搜索字符串[, 开始位置[, 出现次数]])...

    js中substr,substring,indexOf,lastIndexOf的用法小结.docx

    本文将详细介绍`substr`、`substring`、`indexOf`以及`lastIndexOf`这四个方法的用法及其区别,帮助读者更好地理解和应用这些方法。 #### 二、`substr` 方法 `substr`方法用于从一个字符串中提取从指定位置开始的...

    js中substr,substring,indexOf,lastIndexOf的用法小结

    js中substr,substring,indexOf,lastIndexOf等的用法 1.substrsubstr(start,length)表示从start位置开始,截取length长度的字符串。 var src=”images/off_1.png”;alert(src.substr(7,3)); 弹出值为:off  ...

    js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解

    本文将详细介绍JavaScript中一些常用字符串方法的用法,包括 substr、substring、indexOf、lastIndexOf、split 和 replace。通过这些方法,可以轻松地对字符串进行提取、分割和替换操作。 首先,让我们来看看 ...

    C#中String类的几个方法(IndexOf、LastIndexOf、Substring)

    通过以上介绍可以看出,`String.IndexOf`、`String.LastIndexOf` 和 `String.Substring` 是C#中处理字符串时非常重要的几个方法。它们可以帮助我们快速定位字符串中的字符或子字符串,以及从中提取特定的部分。掌握...

    Javascript中indexOf()和lastIndexOf应用方法实例

    JavaScript中的indexOf()和lastIndexOf()方法是用于查找字符串中某个子字符串出现的位置的。这两个方法在处理字符串时非常实用,尤其是对于初学者来说,它们是学习JavaScript字符串操作的基础知识之一。下面将详细...

    js中indexof的用法详细解析.docx

    JavaScript 中的 `indexOf` 方法是用于查找字符串中特定字符或子字符串首次出现的位置。这个方法对于处理文本数据和字符串操作非常有用,尤其是在网页开发中。下面将详细介绍 `indexOf` 的用法和相关概念。 ### `...

    indexOf 和 lastIndexOf 使用示例介绍

    在JavaScript中,`indexOf`和`lastIndexOf`是两个非常重要的字符串方法,它们用于在字符串中查找特定子字符串的位置。这两个方法都返回子字符串在原字符串中的索引,如果找不到则返回-1。 首先,`indexOf`方法从...

    asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法

    ***中的IndexOf、LastIndexOf、IndexOfAny和LastIndexOfAny是.NET框架提供的字符串处理方法,用于在给定的字符串中搜索子串或字符的位置,这些方法在C#编程语言中广泛应用。 IndexOf方法用于查找字符串中指定字符或...

    javascript indexOf方法、lastIndexOf 方法和substring 方法

    标题中提及的JavaScript中的indexOf、lastIndexOf和substring方法是字符串对象提供的几个基础且非常有用的方法,用于搜索字符串中的子字符串位置或者截取字符串。以下是对这些方法的详细知识点解说。 首先,讨论...

    javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法

    JavaScript 字符串处理方法 JavaScript 语言中提供了多种字符串处理...JavaScript 中的 Split 方法、indexOf 方法、lastIndexOf 方法和 substring 方法都是字符串处理中的重要方法,广泛应用于字符串的操作和处理。

    JS判断是否包含某字符串indexOf方法

    JavaScript中的`indexOf`方法是用于检测一个字符串是否包含指定的子字符串,并返回子字符串的起始位置。这个方法对于在处理字符串时进行条件判断、数据筛选等操作非常实用。下面我们将详细探讨`indexOf`方法的使用...

    基于Java中字符串indexof() 的使用方法

    Java 字符串indexof() 的使用方法 Java 中字符串的 indexof() 方法是用于查找子字符串在字符串中的位置的重要方法。...通过学习 indexOf() 方法的使用方法和相关知识点,我们可以更好地掌握 Java 中的字符串操作。

Global site tag (gtag.js) - Google Analytics