oracle通过substr和instr截取指定字符


一:要截取数据如下:

  1.      JD-JD693-A-11OCT141105-D 
  2.      CA-CA1344-A-11OCT141250-D

二:查询结果:

方式一: select substr(name,instr(name,'-',1)+1,instr(name,'-',instr(name,'-',1)+1)-instr(name,'-',1)-1) from test;

方式二: select substr(name,instr(name,'-',1,1)+1,instr(name,'-',1,2)-1-instr(name,'-',1,1)) from test;

结果如下:

 

 

 

三:接下截取第二个"-" 到 第三个"-" 之间的字符串的方法:

   select substr(name,instr(name,'-',2,2)+1,instr(name,'-',2,3)-1-instr(name,'-',2,2)) from test;

结果如下:

 

 

补充:

   select  substr(t.COL1,0,instr(t.COL1,',','1','1')-1)   from AQ_MBGL t;       (截取第一个,号前 的数据)

   select  substr(t.COL1,instr(t.COL1,',','1','2')+1,length(t.COL1))  from AQ_MBGL t  (截取第二个,号后 到结尾 的数据)  案列:德铜 伤亡事故


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM