我有一个字段pattern
,该字段中的值为INDI/17-18/6767/KER/787
。我想从此字符串中获取6767
我使用了查询
select substr(pattern,12,15) from pattern_table
但我得到的输出是6767/KER/787
而不是6767
。
答案 0 :(得分:1)
试试这个:
您必须将length
作为第3个值,而不是position
。
SELECT SUBSTR(pattern,12,4) FROM pattern_table
答案 1 :(得分:0)
对于通过分隔符分隔第3个值的通用结果,您可以使用REGEXP_SUBSTR
。
查询1 :
SELECT pattern,REGEXP_SUBSTR(pattern, '[^/]+', 1, 3) id
FROM pattern_table
<强> Results 强>:
| PATTERN | ID |
|--------------------------|-------|
| INDI/17-18/6767/KER/787 | 6767 |
| INDI/17-18-19/67/KER/787 | 67 |
| INDI/16-18/67890/KAR/986 | 67890 |
答案 2 :(得分:0)
即使这也将起作用:
SELECT substr('INDI/17-18/6767/KER/787',instr('INDI/17-
18/6767/KER/787','/',1,2)+1,4) FROM dual;