当前位置: 代码迷 >> Oracle管理 >> 截取,该怎么处理
  详细解决方案

截取,该怎么处理

热度:400   发布时间:2016-04-24 05:39:50.0
截取
应急设备(危险品运输训练合格证)-02

乘务员初始训练培训证书-01

怎么写截取语句 ,得到 “应急设备(危险品运输训练合格证)" ,也就是得到-之前的数据、

------解决方案--------------------
SQL code
select regexp_substr('乘务员初始训练培训证书-01', '[^-]+', 1, 1) from dual;
------解决方案--------------------
截取有几种方式 可以通过调用正则来截取字符串 
oracle正则表达式从10G开始支持
内置了四个函数 REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、REGEXP_REPLACE
 
REGEXP_SUBSTR与SUBSTR函数相同,返回截取的子字符串
REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]])
------解决方案--------------------
SQL code
select substr('应急设备(危险品运输训练合格证)-02',1,instr('应急设备(危险品运输训练合格证)-02','-')-1) from dual;
------解决方案--------------------
SQL code
SELECT SUBSTR('应急设备(危险品运输训练合格证)-02',1,INSTR('应急设备(危险品运输训练合格证)-02','-',1,1)-1) FROM dual
------解决方案--------------------
实测成功

  相关解决方案