在oracle中,可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。在一个字符串中查找指定的字符,返回被查找到的指定字符的位置。

语法:

Instr(sourceString,destString, start,appearPosition)

Instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')

appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1,如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。--也就是查找从右往左,但查找到的数据位置是从左往右数的位置。

返回值为:查找到的字符串的位置。

举例:

instr用法:

select instr('abcd','a') from dual;  --返回1
select instr('abcd','c') from dual;  --返回3
select instr('abcd','e') from dual;    --返回0

该函数可以用于模糊查询以及判断包含关系:

例如:

① select code, name, dept, occupation  from staff  where instr(code, '001') > 0;

  等同于

  select code, name, dept, occupation  from staff  where code like '%001%' ;

② select ccn,mas_loc from mas_loc where instr('FH,FHH,FHM',ccn)>0;

  等同于

  select ccn,mas_loc from mas_loc where ccn in ('FH','FHH','FHM');

Substr()函数:用于从给定的字符串中返回一个子字符串。

语法:substr(cExpression,nStartPostion,[, nCharactersReturned])

Substr(字符串,截取开始位置,截取长度)//返回截取的字

其中截取位置(nStartPostion)默认为1,与0一致。

举例:

substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符。

-----

Postgresql有相同substr函数,功能相同,但是在0位置返回不同,且存在负数位置,如:

但正数位置是相同的:

Postgresql对此俩函数的改造可分别用:postion() substring()。

---------

本系列为最近一段时间学习oracle的学习笔记,记录于此作为自身回顾,其中有的来的网络,有的来的书籍,但时间已久,记不清哪些是引用,如是转载但没标注出,特意致歉。

oracle中substr与instr的更多相关文章

  1. Oracle中nvl()、instr()、及执行多条sql事务操作

    Oracle的Nvl函数 nvl( ) 函数 从两个表达式返回一个非null 值. 语法 NVL(eExpression1, eExpression2) 参数 eExpression1, eExpre ...

  2. oracle中substr() instr() 用法

    --substr(字符串,截取开始位置,截取长度)=返回截取的字 ,) from dual;--返回结果为:m ,) from dual;--返回结果为:m--说明0和1都表示截取的位置为第一个字符 ...

  3. [转]ORACLE中Like与Instr模糊查询性能大比拼

    instr(title,'手册')>0  相当于  title like '%手册%' instr(title,'手册')=1  相当于  title like '手册%' instr(titl ...

  4. oracle中substr函数的用法

    1.substr(string string, int a, int b) 参数1:string 要处理的字符串 参数2:a 截取字符串的开始位置(起始位置是0) 参数3:b 截取的字符串的长度(而不 ...

  5. Oracle中 Instr 这个函数

    http://www.jb51.net/article/42369.htm sql :charindex('字符串',字段)>0 charindex('administrator',MUserI ...

  6. Oracle中Instr用法

    在项目中用到了Oracle中 Instr 这个函数,顺便仔细的再次学习了一下这个知识. Oracle中,可以使用 Instr 函数对某个字符串进行判断,判断其是否含有指定的字符. 其语法为:Instr ...

  7. SQL中Charindex和Oracle中对应的函数Instr

    转:http://blog.csdn.net/zhuyu19911016520/article/details/8568640 sql :charindex('字符串',字段)>0 charin ...

  8. Oracle中如何查询CLOB字段类型的内容

    注:本文来源于:<Oracle中如何查询CLOB字段类型的内容> 语法 select * from table_name where dbms_lob.instr(字段名(clod类型), ...

  9. Oracle中INSTR、SUBSTR和NVL的用法

    Oracle中INSTR.SUBSTR和NVL的用法 INSTR用法:INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 默认 ...

随机推荐

  1. 基于spring的文件上传--单文件上传

    Spring配置文件 <bean id="multipartResolver" class="org.springframework.web.multipart.c ...

  2. 【codevs1086】 栈

    http://codevs.cn/problem/1086/ (题目链接) 题意 给出1~n总共n个数,对它们进行入栈出栈操作,问一共有多少种不同的方案. Solution 找规律手玩前5个1 2 5 ...

  3. UOJ264 【NOIP2016】蚯蚓

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  4. 洛谷P2746 [USACO5.3]校园网Network of Schools

    题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学校的列表中. 你要写 ...

  5. 12.04 redmine

    sudo apt-get redmine-mysql mysql-server-5.5 sudo apt-get redmine-mysql redmine(中间会死一段时间,没关系,等会会过去) 安 ...

  6. Zabbix low-level discovery

    Version: zabbix 3.0.1 概述 Low-Level discovery 可以自动创建items,triggers,graphs为不同的实体对象. 例如:zabbix能自动监控服务器上 ...

  7. STL之vector

    参考资料:      1.codeproject      2.csdn      3.cplusplus

  8. 修改oracle系统用户system的密码

    C:\Users\Administrator>echo %ORACLE_SID% %ORACLE_SID% C:\Users\Administrator>set ORACLE_SID=or ...

  9. K米测试

    K米评测 ------K米IOS4.3.0体验之旅 第一部分 :调研,评测 第一次上手体验:  像大多数同学一样,这也是我第一次使用k米这一类型的ktv点歌软件.我算是比较经常接触唱k的人,身边的朋友 ...

  10. Beta版本——第六次冲刺博客

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...