Извлечь значение из строки в Oracle - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно извлечь определенные значения из строки.

Пример: 1571-P003 031-OHD-SSKS-SSMO

Вывод: P003 031

1 Ответ

0 голосов
/ 26 апреля 2019

Вот одна опция, которая возвращает 2-е и 3-е слово из этой строки:

SQL> with test (col) as
  2    (select '1571-P003 031-OHD-SSKS-SSMO' from dual)
  3  select regexp_substr(col, '\w+', 1, 2) ||' ' ||
  4         regexp_substr(col, '\w+', 1, 3) result
  5  from test;

RESULT
--------
P003 031

SQL>

Или другой, который возвращает подстроку между 1-м и 2-м знаком -:

SQL> with test (col) as
  2    (select '1571-P003 031-OHD-SSKS-SSMO' from dual)
  3  select substr(col, instr(col, '-', 1, 1) + 1,
  4                     instr(col, '-', 1, 2) - instr(col, '-', 1, 1) - 1
  5               ) result
  6  from test;

RESULT
--------
P003 031

SQL>
...