c#截取字符串指定符号_详解Oracle使用substr和instr截取字符串指定位置的字符

本文介绍了Oracle数据库中用于字符串处理的两个关键函数:instr()和substr()。instr()函数用于查找子字符串在源字符串中的位置,而substr()函数则用于截取字符串的一部分。通过示例展示了它们的基本用法和结合使用来提取特定位置的字符串。掌握这两个函数对于日常SQL查询非常有用。
摘要由CSDN通过智能技术生成

概述

oracle一般截取某一个字符之前或之后的值都会用到substr()和instr()函数,抽时间整理了这方面,下面做个简单介绍。


1、instr函数

这是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置。

7ee396f7e3281f972f928e1b9faacf54.png

函数定义如下:

/* * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始) * @param string 源字符串 * @param substring 子字符串 * @param position 检索位置,可省略(默认为1),参数为正时,从左向右检索,参数为负时,从右向左检索 * @param occurrence 检索子字符串出现的次数,可省略(默认为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
123983f753586e849d6a8fbdc0b5052b.png

2、substr函数

这是一个字符串截取函数,它返回的是截取的字符串。

函数定义如下:

/* * 截取字符串(字符串位置从1开始,而不是从0开始) * @param string 源字符串 * @param position 检索位置,参数为正时,从左向右检索,参数为负时,从右向左检索 * @param substring_length 要截取的长度,可省略(默认从position位开始截取全部),值小于1时返回空字符串 * @return 返回截取的字符串 */substr(string, position, substring_length);
65572a0e6214d58552108d30c54c3bcb.png

实例

SELECT SUBSTR('hello world', 2) FROM DUAL; --结果:ello 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; --结果:空字符串
94e3480331d523617cae330a2c3e3bf5.png

3、SUBSTR和INSTR结合

可以将SUBSTR和INSTR结合使用来实现截取字符串中特定字符前后的字符串

实例:

1) 截取“hello,world”字符串中“,”分隔符之前的字符串

SELECT SUBSTR('hello,world', 1, INSTR('hello,world', ',')-1) FROM DUAL;--结果:hello

2)截取“hello,world”字符串中“,”分隔符之后的字符串

SELECT SUBSTR('hello,world', INSTR('hello,world', ',')+1) FROM DUAL;--结果:world

3)截取“hello,world,HH”字符串中第1次出现的“,”字符和第2次出现的“,”字符之间的字符串

SELECT SUBSTR('hello,world,HH', INSTR('hello,world,HH', ',',1)+1, INSTR('hello,world,HH', ',', 2)-1) FROM DUAL;--结果:world
23d04afda5b2f5d5a69b3eafbe1e3a7e.png

关于oracle的INSTR、SUBSTR用法就介绍到这了,掌握这两个还是很有必要的,特别是平时写sql的时候。

后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!

9210d6c80416b9851c8d6cfff6334038.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值