如何在SQL Result中的两个已知字符串之间提取字符串并将其显示在另一个列中?

时间:2016-07-28 00:03:55

标签: sql oracle

我正在使用SQL Developer。

表名:PRCQA.PRCBUILD_FJ_BAT

列名:ETA

ETA的价值':

  

http://reefoats.us.oc.com:8080/atsresultviewer/displayresult?ree_run_id=153464685&type=ree

我正在尝试从上面生成的列中提取字符串153464685并单独显示它。

到目前为止我一直试过这个:

SELECT SUBSTR(t.ETA, INSTR(t.ETA, '=')+1, INSTR(t.ETA, 'type')-1), t.ETA AS output
  FROM PRCQA.PRCBUILD_FJ_BAT t
  WHERE t.DTE_ID = '33782451' AND t.BAT_NAME LIKE '110_170_ECM 140_%'

我得到的结果如下:

153464685&安培;类型= REE

但我希望结果如下: 153464685

即使我更改了INSTR(t.ETA,'类型') - 1,仍然得到相同的结果?

我可以在这做什么?请建议。感谢。

2 个答案:

答案 0 :(得分:1)

使用regexp_substr()

select translate(regexp_substr(eta, '[=][^=&]+[&]', 1, 1), '=&a', 'a')
from PRCQA.PRCBUILD_FJ_BAT t
where t.DTE_ID = '33782451' and t.BAT_NAME like '110_170_ECM 140_%'

答案 1 :(得分:0)

这有效:

SELECT SUBSTR(t.ETA, INSTR(t.ETA, '=')+1, (INSTR(t.ETA, 'type')-INSTR(t.ETA, '='))-2), t.ETA AS output
  FROM PRCQA.PRCBUILD_FJ_BAT t
  WHERE t.DTE_ID = '33782451' AND t.BAT_NAME LIKE '110_170_ECM 140_%'