筛选表中某一字段中的数据
本帖最后由 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函数