Как вытащить целые числа из середины результатов SQL-запроса - PullRequest
0 голосов
/ 11 мая 2018

У меня есть таблица SQL, которая возвращает результаты следующим образом:

XY_4_**505543**_1227_1499547620

Я пытаюсь вытащить только жирный шрифт.Я пробовал смесь replace('XY_4_','') и len() с -16.Но я думаю, что подхожу к этому неправильно.

Я надеялся использовать что-то вроде следующего, но замена не допускает подстановочные знаки:

select replace(replace(column, 'XY_4_','')'_%%%%_%%%%%%%%%%','') from table

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Это должно помочь -

SELECT
    REGEXP_SUBSTR('XY_4_**505543**_1227_1499547620','\**([0-9]*)\*',1,1,NULL,1) AS VAL
FROM
    DUAL;

Выход -

"VAL"
"505543"
0 голосов
/ 11 мая 2018

Поскольку желаемая выходная строка всегда начинается с 6-го символа и содержит всего 6 символов, вы можете использовать функцию SUBSTRING для получения желаемого результата.

SELECT SUBSTRING(column, 6, 6) FROM table;

Где первый параметр - это имя столбца,второй - начальный индекс (на основе 1), а последний параметр - количество символов для извлечения.

...