oracle的instr()函数
我们知道很多语言都提供了indexOf()和lastIndexOf()函数,以便能查找某个字符在某个字符串中的出现的位置和最后一次出现的位置。
但是Oracle没有提供这两个函数,事实上,它提供了一个INSTR()函数,这个函数其实功能要强大得多。
INSTR()函数的语法:
-- instr(源字符串, 目标字符串 [, 起始位置 [, 匹配序号]])
instr(str1, str2 [, start_position [, nth_appearance]])
没有错,它可以用来查字符串的,不是单单查单个字符。
SELECT INSTR('HELLOWORLD', 'L') FROM DUAL; -- 3 默认第一次出现L的位置
SELECT INSTR('HELLOWORLD', 'LO') FROM DUAL; -- 4 在LO中的L开始出现的位置
SELECT INSTR('HELLOWORLD', 'WO') FROM DUAL; -- 6 在WO中的W开始出现的位置
SELECT INSTR('HELLOWORLD', 'L', 2, 2) FROM DUAL; -- 4 在HELLOWORLD的第2(E)号位置开始,查找第二次出现的L的位置
SELECT INSTR('HELLOWORLD', 'L', 3, 2) FROM DUAL; -- 4 在HELLOWORLD的第3(L)号位置开始,查找第二次出现的L的位置
SELECT INSTR('HELLOWORLD', 'L', 4, 2) FROM DUAL; -- 9 在HELLOWORLD的第4(L)号位置开始,查找第二次出现的L的位置
SELECT INSTR('HELLOWORLD', 'L', -1, 1) FROM DUAL; -- 9 在HELLOWORLD的倒数第1(D)号位置开始,往回查找第一次出现的L的位置
SELECT INSTR('HELLOWORLD', 'L', -2, 2) FROM DUAL; -- 4 在HELLOWORLD的倒数第1(D)号位置开始,往回查找第二次出现的L的位置
SELECT INSTR('HELLOWORLD', 'L', 2, 3) FROM DUAL; -- 9 在HELLOWORLD的第2(E)号位置开始,查找第三次出现的L的位置
SELECT INSTR('HELLOWORLD', 'L', -2, 3) FROM DUAL; -- 3 在HELLOWORLD的倒数第2(L)号位置开始,往回查找第三次出现的L的位置
INSTR()函数有时候也可以用来替代模糊查询。
SELECT * FROM TABLE WHERE NAME LIKE '%HELLOWORLD%';
SELECT * FROM TABLE WHERE INSTR(NAME, 'HELLOWORLD') > 0;
这两个语句的实现效果是一样的。
多用用,你就能感受到这个函数的强大,那些什么indexOf()或lastIndexOf()都是弟弟。
"为谁如花美眷,似水流年。"
oracle的instr()函数的更多相关文章
- 使用Oracle的instr函数与索引配合提高模糊查询的效率
使用Oracle的instr函数与索引配合提高模糊查询的效率 一般来说,在Oracle数据库中,我们对tb表的name字段进行模糊查询会采用下面两种方式:1.select * from tb wher ...
- Oracle中INSTR函数与SQL Server中CHARINDEX函数
Oracle中INSTR函数与SQL Server中CHARINDEX函数 1.ORACLE中的INSTR INSTR函数格式:INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) 说明:返回 ...
- Oracle中instr 函数的详解
INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置.只检索一次,就是说从字符的开始 到字 ...
- oracle中INSTR函数的用法
今天有个同学问我这个INSTR函数,我也不太清楚就上网查了查做一个小小的记录吧 INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 ...
- oracle 中INSTR 函数和SUBSTR函数的使用
INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置.只检索一次,就是说从字符的开始 到字符的结尾就结束. ...
- 【Oracle】instr()函数详解
1)instr()函数的格式 (俗称:字符查找函数) 格式一:instr( string1, string2 ) / instr(源字符串, 目标字符串) 格式二:instr( strin ...
- Oracle的instr函数
instr函数 instr(目标字符串,被匹配的字符串,搜索的开始位置默认是1,第几次被搜索到) 例子1: SQL> select ename,instr(ename,'L',1,1) from ...
- Oracle的instr()函数和substr()函数
INSTR()函数 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符. 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置. 语法: instr(sourceString ...
- PostgreSQL模仿Oracle的instr函数
-- -- instr functions that mimic Oracle's counterpart -- Syntax: instr(string1, string2, [n], [m]) w ...
随机推荐
- [转]Apache Doris资料汇总
参考资料 https://www.toutiao.com/i6709706901770207748/?tt_from=weixin&utm_campaign=client_share& ...
- Ubuntu桌面版安装小记
之前一直是用Ubuntu的桌面版装docker,桌面版本身用起来比较方便,但开销较大,如果建立多个虚拟机就比较费劲了.今天试了一下server版的Ubuntu,发现还是比较方便的,相比桌面版,有如下好 ...
- winform批量更新数据_长时间的执行会导致界面卡死
前言:使用winform触发一个事件后执行的代码,如果耗时非常长,则会导致窗口界面假死! 本人最近通过winform窗体执行一项:需要批量更新一批数据库的数据的操作的任务时,由于数据量达到百万级别, ...
- Tomcat安装、使用(Windows)
一.下载.安装 1.下载 进官网下载 : https://tomcat.apache.org/ 选择自己适合的版本.在这里演示的是下载 Tomcat 7(解压安装版). 2.解压.启动tomcat 解 ...
- node设置跨域白名单
// 判断origin是否在域名白名单列表中 function isOriginAllowed(origin, allowedOrigin) { if (_.isArray(allowedOrigin ...
- 浅谈Vue下的components模板
浅谈Vue下的components模板在我们越来越深入Vue时,我们会发现我们对HTML代码的工程量会越来越少,今天我们来谈谈Vue下的 components模板的 初步使用方法与 应用 我们先来简单 ...
- 双十一DIY装机记
一.装机背景 最近发现古董笔记本太卡了,用了近6年,尽管自己不打游戏,但是业余时间写写代码,同时开两个编辑器,打开个大一点的软件都卡的不行,据说更换固态硬盘可以提高速度,于是乎,京东买了一个500 ...
- 程序员编程时常用的mac快捷方式
fn + F2/F3 = 调节音量 commend + shift +k = 显示或隐藏键盘 commend+shift +h = iPhone返回主页面 commend+ shift + hh = ...
- IDEA下新建Vue项目
1.首先需要安装nodeJS,并配置全局环境变量. 2.在IDEA中新建一个空的project 3.在setting中配置JavaScript的语言版本为6 在file types的html中添加.* ...
- java annotation使用介绍
还望支持个人博客站:http://www.enjoytoday.cn 介绍 Annotation的中文名字叫注解,开始与JDK 1.5,为了增强xml元数据和代码的耦合性的产物.注解本身并没有业务逻辑 ...