筛选表中某一字段中的数据
本帖最后由 shii_u 于 2012-11-19 09:14:40 编辑
现有一字段数据如下:
checkPoint_Id checkPoint_Result
1 循环风机:2、风机电机有异常声音。
2 3000线滚筒减速机:4、减速机有异常声音。
我想要选取字段中顿号“、”后面,句号“。”前面的内容(其他内容不要),该用什么方法实现,请教各位大侠
------解决方案--------------------
with t1 as
(
select 1 id,'循环风机:2、风机电机有异常声音。' Result from dual
union all
select 2 id,' 3000线滚筒减速机:4、减速机有异常声音。' Result from dual
)
select substr(Result,instr(Result,'、')+1,length(Result)-instr(Result,'、')-1) c1
from t1
c1
----------------------------------
1 风机电机有异常声音
2 减速机有异常声音
------解决方案-------------------- SUBSTR(CHECKPOINT_RESULT,
INSTR(CHECKPOINT_RESULT, '、')+1,
INSTR(CHECKPOINT_RESULT, '。') -
INSTR(CHECKPOINT_RESULT, '、')-1)
简单的介绍下,INSTR(CHECKPOINT_RESULT, '、')表示得到字符串中第一个出现、的位置。然后用substr函数