Oracle Regexp для разделения строки на основе первого вхождения разделителя - PullRequest
0 голосов
/ 28 июня 2019

У меня есть следующие данные

1241 - ASGEF - AFZHE
1242 - ASGEF1
1243 - UJHAHAHG - AGHBNG

Ожидаемый вывод с использованием Oracle Regexpr

ASGEF - AFZHE
ASGEF1
UJHAHAHG - AGHBNG

1 Ответ

1 голос
/ 28 июня 2019

SUBSTR + INSTR, вероятно, будет работать быстрее (т.е. нет необходимости в регулярных выражениях).result показывает, что, в то время как result_2 показывает одну опцию регулярного выражения.

SQL> with test (col) as
  2    (select '1241 - ASGEF - AFZHE'     from dual union all
  3     select '1242 - ASGEF1'            from dual union all
  4     select '1243 - UJHAHAHG - AGHBNG' from dual
  5    )
  6  select col,
  7         trim(substr(col, instr(col, '-') + 1)) result,
  8         ltrim(regexp_substr(col, '-.+'), '- ') result_2
  9  from test;

COL                      RESULT                   RESULT_2
------------------------ ------------------------ ------------------------
1241 - ASGEF - AFZHE     ASGEF - AFZHE            ASGEF - AFZHE
1242 - ASGEF1            ASGEF1                   ASGEF1
1243 - UJHAHAHG - AGHBNG UJHAHAHG - AGHBNG        UJHAHAHG - AGHBNG

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