读书人

罗选表中某一字段中的数据

发布时间: 2013-01-07 10:02:24 作者: rapoo

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

读书人网 >oracle

热点推荐