oracle得到某个字符串前后的值

本文深入解析了SQL中的instr和substr函数用法,详细解释了如何使用instr判断字符串中是否存在指定字符及其位置,以及如何使用substr进行字符串截取。通过具体SQL查询案例,展示了在数据库操作中的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select TEXT,VALUE,
case when instr(text,'#') = 0 then text else substr(text,1,instr(text,'#')-1) end reason,
case when instr(text,'#') = 0 then '0' else substr(text,instr(text,'#')+1,length(text)-instr(text,'#')) end score
FROM SM_LOV_V where  DELETE_FLAG = 'N' and (LOV_CODE = 'PUNISHMENTS_REASON' or LOV_CODE = 'REWARD_REASON')

在这里插入图片描述
instr:判断字符串中是否存在指定字符

instr(sourceString,destString,start,appearPosition) 
instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')

1.其中sourceString代表源字符串; destString代表要从源字符串中查找的子串;
2.start代表查找的开始位置,这个参数可选的,默认为1;
3.appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1
4.如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。
5.返回值为:查找到的字符串的位置。如果没有查找到,返回0。

substr:截取字符串

格式1: substr(string string, int a, int b);

1.string 需要截取的字符串
2.a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3.b 要截取的字符串的长度

格式2:substr(string string, int a) ;

1.string 需要截取的字符串
2.a 可以理解为从第a个字符开始截取后面所有的字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值