Как извлечь цифры, используя регулярное выражение в oracle с 10 по 18 вхождение из строки? - PullRequest
0 голосов
/ 28 апреля 2020

Строка может быть в любом формате, несколько примеров показаны ниже -999999999 (выход 987654321)

753812569/999999999/965421678/212123512 (выход 999999999) bcr987654321 | bcr 123456789 (выход 123456789)

1 Ответ

0 голосов
/ 28 апреля 2020

Удалите все не-ди git символы, затем возьмите подстроку из 9 символов, начиная с 10-го символа:

SELECT SUBSTR( REGEXP_REPLACE( value, '\D' ), 10, 9 )
FROM   table_name;

Итак, для ваших тестовых данных:

CREATE TABLE table_name ( value ) AS
SELECT '123456789, 999999999, 123456789' FROM DUAL UNION ALL
SELECT '123456789 ---987654321---987654321---999999999' FROM DUAL UNION ALL
SELECT '753812569/999999999/965421678/212123512' FROM DUAL UNION ALL
SELECT 'bcr987654321 |bcr 123456789' FROM DUAL

Это выводит:

| SUBSTR(REGEXP_REPLACE(VALUE,'\D'),10,9) |
| :-------------------------------------- |
| 999999999                               |
| 987654321                               |
| 999999999                               |
| 123456789                               |

дБ <> скрипка здесь

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