oracle取字段第三位字符,oracle截取某一字符前的字段

本文介绍如何在SQL查询中使用INSTR函数结合CASE WHEN和SUBSTR在user表中提取tel字段,当存在逗号时截取其前面部分,否则返回整个字段。通过实例演示了如何根据逗号的存在情况灵活处理数据。
摘要由CSDN通过智能技术生成

Select INSTR('002,001',',',1,1) from dual

INSTR函数:在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。

instr(sourceString,destString,start,appearPosition)

​instr('源字符串' , '目标字符串'

,'开始位置','第几次出现')

sourceString:代表源字符串;

destString:代表要从源字符串中查找的子串;

start代表查找的开始位置,这个参数可选的,默认为1;

appearPosition:代表想从源字符中查找出第几次出现的

destString:这个参数也是可选的,

默认为1如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。返回值为:查找到的字符串的位置。

Select INSTR('002,001',',',1,1) from

dual​对于这个查询,返回的结果是4,也就是说逗号在第四个位置上。

所以可以利用sub​str以及case when

来查找出某一字符前面的字段;

比如:有个表 user,要提取tel字段中逗号前面的字段,若没有逗号的提取整个字段。

a4c26d1e5885305701be709a3d33442f.png表1-1

user

select case when INSTR(tel,',',1,1)=0 then

tel

else substr(tel,1,INSTR(tel,',',1,1)-1)end from

tb_user

其中用case when 判断是否含有逗号,为0就是不含逗号,sbustr用来截取字段。

a4c26d1e5885305701be709a3d33442f.png图2-2

结果

​​

​​

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值