oracle截取字符段的函数,Oracle | 字符串操作 - SUBSTR 和 INSTR函数

一、字符串查找函数  INSTR()

二、字符串截取函数 SUBSTR()

三、实际应用: SUBSTR 和 INSTR 结合使用

一、字符串查找函数  INSTR()格式: INSTR(str , substr , 【start_position ,【 nth_appearance】】)

@param str:源字符串

@param substr:子字符串,在源字符串中查找的字符串

@param start_position:从源字符串str开始查找的位置。可选,默认为1。正数时从左向右检索,负数时从右向左检索

@param nth_appearance:查找源字符串时,第几次出现目标字符串 str2 。可选,默认为1,不能为负数。

@return 返回子字符串在源字符串中出现的位置(没找到返回0)

注:字符串索引号从1开始,而不是从0开始。

例:(1) INSTR('todayisabeautifulday' , 'to')

返回结果:1 (因为字符串索引号从1开始,所以返回1,不是返回0)

(2)  INSTR('todayisabeautifulday' , 'day',1, 1)

返回结果: 3 (返回第一次查出 day 的位置)

(3) 若改成 INSTR('todayisabeautifulday' , 'day',1, 2)

则返回结果为第二次出现 day 的位置:18

(4) INSTR('today is a beautiful day' , 'is',1, 1)

返回结果:7 (空格也是一个字符)

二、字符串截取函数 SUBSTR()格式:SUBSTR(str, start_position ,【 length】)

@param str:  源字符串

@param start_position: 检索位置。参数为正时从左向右检索,参数为负时从右向左检索

@param length:将要截取的长度,可选,默认从start_position 位开始截取全部。值小于1时返回空字符串

@return 返回截取的字符串

注: 字符串索引号从1开始,而不是从0开始。

例:(1)SUBSTR ('ABCDEFG', 2, 3)

返回结果:'BCD' (从第2个字符开始,截取长度为3的子串)

(2)substr('ABCDEFG',  -2)

返回结果:'FG'   (从倒数第2个字符开始,截取到源串的末尾)

(3)substr('ABCDEFG', -4, 2)

返回结果:'DE' (从倒数第4个字符开始,截取长度为2的子串)

(4)substr('ABCDEFG', 4, -1)

返回结果: 空字符串 (截取长度小于1时,返回空字符串 )

三、实际应用: SUBSTR 和 INSTR 结合使用

结合 SUBSTR()和 INSTR()来实现截取字符串中特定字符前后的字符串

(1)截取 “hello,world” 字符串中 “,” 分隔符之前的字符串SELECT SUBSTR(' hello,world', 1, INSTR('hello,world', ',')-1)  FROM DUAL;

返回结果:hello

(2)截取 “hello,world, ye” 字符串中第1次出现的 “,” 字符和第2次出现的 “,” 字符之间的字符串SELECT SUBSTR('hello,world,ye', INSTR('hello,world,ye', ',',1)+1, INSTR('hello,world,ye', ',', 1, 2)-INSTR('hello,world,ye', ',', 1)-1 ) FROM DUAL;

返回结果:world

参考链接:https://blog.csdn.net/lanmuhhh2015/article/details/78861614

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值