Проблемы с извлечением полей SQL - PullRequest
0 голосов
/ 05 января 2012

У меня есть столбец A, который содержит 4 поля, разделенных '/'

example:  234-12-343/653423/MANAGER/yg@gmail.com

Интересно, как я могу извлечь индекс поля 2?итоговый результат будет 653423.

(моя идея - использовать регулярные выражения, но я не знаю, как это сделать)

* База данных Oracle 10g

Я былсмог выйти этим запросом.Спасибо за помощь

select substr(ColumnA',
          regexp_instr(ColumnA,'[\/]',1,1,0) + 1,
          regexp_instr(ColumnA,'[\/]',1,2,0) - regexp_instr(ColumnA,1,1,0) - 1  ) 
          as test from dual

1 Ответ

6 голосов
/ 05 января 2012
substr(column_a, instr(column_a,'/',1,1) + 1, instr(column_a,'/',1,2) - instr(column_a,'/',1,1) - 1)

instr(column_a,'/',1,1) ищет первое вхождение /instr(column_a,'/',1,2) ищет второе вхождение /

substr, затем извлекает все между двумя позициями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...