大家好,关于Oracle函数INSTR、SUBSTR使用说明及示例很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
该函数定义如下:
/* * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始) * @param string source string* @param substring substring* @param position 检索位置,可以省略(默认为1)、当参数为正数时,从左到右搜索,当参数为负数时,从右到左搜索* @paramoccurrence 检索子字符串出现的次数,可省略(默认为1),取值只能是正整数,否则会报错* @return 返回子字符串在源字符串中出现的位置(如果没有找到则返回0) */instr(string, substring,position,occurrence);
实例
SELECT INSTR(‘hello world’, ‘l’) FROM DUAL; –结果: 3SELECT INSTR(‘hello world’, ‘l’, 5) FROM DUAL; –结果: 10SELECT INSTR(‘hello world’, ‘l’, -1) FROM DUAL; –结果: 10SELECT INSTR(‘hello world’, ‘l’, 2, 2) FROM DUAL; –结果: 4SELECT INSTR(‘hello world’, ‘l’, -3, 3) FROM DUAL; –结果:0
2、substr函数
这是一个字符串截取函数,返回截取的字符串。
该函数定义如下:
/* * 截取字符串(字符串位置从1开始,不是从0开始) * @param string 源字符串* @paramposition 检索位置,当参数为正数时,从左到右搜索,当参数为负数时,检索从右到左* @param substring_length 需要截取的长度,可以省略(整个截取默认从位置position开始)。如果值小于1,则返回空字符串* @return 返回截取的字符串*/substr(string,position,substring_length);
例子
SELECT SUBSTR(‘hello world’, 2) FROM DUAL; –结果:hello worldSELECT SUBSTR(‘hello world’, -2) FROM DUAL; –结果: ldSELECT SUBSTR(‘hello world’, 4, 4) FROM DUAL ; –结果: lo wSELECT SUBSTR(‘hello world’, -4, 3) FROM DUAL; –结果:orlSELECT SUBSTR(‘hello world’, 4, -1) FROM DUAL; –结果:空字符串
3、SUBSTR和INSTR结合
可以将SUBSTR 和INSTR 一起使用来截取字符串中特定字符之前和之后的字符串。
例子:
1)截取“hello, world”字符串中“,”分隔符之前的字符串
SELECT SUBSTR(‘hello,world’, 1, INSTR(‘hello,world’, ‘,’)-1) FROM DUAL;–结果:hello2) 截取“hello,world”字符串中的“,”分隔符
SELECT SUBSTR(‘hello,world’, INSTR(‘hello,world’, ‘,’)+1) FROM DUAL;–结果: world3) 截取“hello,world,HH”字符串中第一次出现的“ “,”字符和第二次出现的“,”字符之间的字符串
SELECT SUBSTR(‘你好,世界,HH’, INSTR(‘你好,世界,HH’, ‘,’,1)+1, INSTR(‘你好,世界,HH’, ‘,’, 2)-1) FROM DUAL;–结果:世界
这是Oracle的INSTR和SUBSTR的使用介绍。掌握这两个还是有必要的,尤其是写SQL的时候。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/136642.html
用户评论
颓废i
这个主题太棒了!我总是觉得 Oracle 的一些函数用法很费劲,这款INSTR 和 SUBSTR 讲解简直太详细了,还有实例演示,终于不用再摸索了!
有11位网友表示赞同!
一纸愁肠。
看完这篇博文,Oracle 的这两种函数一下子就清晰了许多。以前总觉得比较复杂,现在理解起来倒是很简单,谢谢作者的用心整理!
有11位网友表示赞同!
各自安好ぃ
讲道理,INSTR 和 SUBSTR 这两个函数确实很常用,尤其是做数据提取的时候,这篇博文的实例讲解很有帮助。之前遇到问题的时候总是谷歌上找答案,这下自己也能解决啦!
有6位网友表示赞同!
看我发功喷飞你
觉得文章有点晦涩,对于入门学习者来说可能不太友好。建议在解释函数原理时可以多加一些通俗易懂的例子,更容易理解。
有12位网友表示赞同!
寻鱼水之欢
实例讲解都很清晰,但感觉文章结构有点凌乱,建议按照功能分类或者使用场景逻辑来进行叙述,更方便阅读和回溯。
有6位网友表示赞同!
隔壁阿不都
INSTR 和 SUBSTR 的用法确实很有技巧,这篇博文讲解得比较全面,很多细节都交代得很清楚,值得收藏!希望能看到作者后续分享更多 Oracle 函数使用方法。
有17位网友表示赞同!
七级床震
这篇文章挺有帮助的,终于弄明白了这些函数是怎么工作的。以前总是把他们搞混淆,现在分得清了!
有12位网友表示赞同!
病房
文章内容不错,但是代码示例有点老旧了,建议更新一下最新的版本,更贴合实际应用需求。
有7位网友表示赞同!
剑已封鞘
对新手来说这个函数确实容易理解,但是对于熟悉 SQL 的人来说可能有些低级了。希望可以加入一些更进阶的用法和案例讲解。
有20位网友表示赞同!
无寒
INSTR 和 SUBSTR 这两个函数的应用场景很多,这篇博文总结得很不错,特别是实例演示部分很实用,以后碰到相关需求直接参考就好了!
有16位网友表示赞同!
我的黑色迷你裙
对于初学者来说可能需要花点时间去看懂这个文章,但是如果认真学习的话,能够掌握这两种函数的使用技巧无疑是非常有价值的。
有20位网友表示赞同!
冷嘲热讽i
希望作者能定期更新Oracle相关的教程,比如可以讲解其他常用函数,或者结合一些实际案例进行分析,这样对我们 learners 更有帮助!
有10位网友表示赞同!
我一个人
我以前用的 SQL Server 做数据提取的时候,会用类似的功能,看来 Oracle 中也有相应的解决方案。
有7位网友表示赞同!
留我一人
这篇博文把重点都解释得很清楚了,例如说明 INSTR 函数的返回值含义以及 SUBSTR 函数如何处理边界情况,这对理解这两个函数非常关键!
有13位网友表示赞同!
仅有的余温
我觉得这篇文章写得有点简单,对于已经对 Oracle 比较熟悉的人来说没有太多收获。希望作者可以提供更深入的分析和案例讲解。
有13位网友表示赞同!
断秋风
INSTR 和 SUBSTR 的运用确实很有技巧,这篇博文解释得很清晰,能够帮我更好地理解它们的原理。 感谢作者的分享!
有16位网友表示赞同!
情深至命
Oracle 学习真是不容易啊,幸好看到了这篇博客。函数的用法终于有点头绪了!
有8位网友表示赞同!