instr和substr的使用

最近经常能碰到截取某一列字段显示的问题,为了防止忘记还是写在博客里吧:

substr (字段或字符串,起始位置,截取个数):  截取某一列的一部分字段,返回截取的值

例如:

  某一列的值为 

  instiname

 中国邮政集团公司黑河市分公司
 中国邮政集团公司伊春市分公司
 中国邮政集团公司哈尔滨市阿城机要公司
 中国邮政集团公司牡丹江市分公司市场经营部
 中国邮政集团公司绥化市代理金融业务局
 中国邮政集团公司大兴安岭地区代理金融业务局
 中国邮政集团公司鸡西市分公司中邮保险局
 中国邮政集团公司七台河市分公司营销客维中心
 中国邮政集团公司鸡西市报刊发行局业务班
 中国邮政集团公司大庆市分公司工会办公室

-------------------------------------------------------------------

select  substr(instiname,1,8) from dual 

  :返回的结果为

中国邮政集团公司
中国邮政集团公司
中国邮政集团公司
中国邮政集团公司
中国邮政集团公司
中国邮政集团公司
中国邮政集团公司
中国邮政集团公司
中国邮政集团公司
中国邮政集团公司

instr (字段或字符串,字段中的某个字符或字符串,起始查找位置(默认是1),第几次出现(默认是1)): 返回值为该字符或字符串出现的位置

例如:

  某一列的值为 

  instiname

 中国邮政集团公司黑河市分公司
 中国邮政集团公司伊春市分公司
 中国邮政集团公司哈尔滨市阿城机要公司
 中国邮政集团公司牡丹江市分公司市场经营部
 中国邮政集团公司绥化市代理金融业务局
 中国邮政集团公司大兴安岭地区代理金融业务局
 中国邮政集团公司鸡西市分公司中邮保险局
 中国邮政集团公司七台河市分公司营销客维中心
 中国邮政集团公司鸡西市报刊发行局业务班
 中国邮政集团公司大庆市分公司工会办公室

-------------------------------------------------------------------

select  instr(instiname,'司') from dual

  返回结果为:

 8
 8
 8
 8
 8
 8
 8
 8
 8
 8

select  instr(instiname,'司',9) from dual  :从第9个字符开始查找‘司’字

   返回结果为:

14
14
18
15
0
0
14
15
0
14

注意:当‘起始位置’不大于要查找的第一个字符的位置时,返回的值都将是第一个字符的位置,如果‘起始位置’大于要查找的第一个字符的位置时,返回的值都将是第2个字符的位置,依此类推……(但是也是以第一个字符开始计数)

 

select  instr(instiname,'司',1,2) from dual  :从第一个字符查找第二个‘司’的位置。

 

 返回结果为:

 

14
14
18
15
0
0
14
15
0
14

 

转载于:https://www.cnblogs.com/h-guang/p/9339805.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值