Oracle. Получить часть строки между пробелами
В таблице Oracle есть столбец FIO, это строка с тремя словами типа 'Иванов Иван Иванович'. Мне нужно получить отдельно имя, фамилию и отчество. Фамилию достала так:
SELECT SUBSTR(FIO, 0, INSTR(FIO, ' ', 1) +0)
FROM TABLE;
А вот с именем мучаюсь, не могу нигде найти ответ. Нужно получить просто "Иван". Пробовала аргументы крутить в разные стороны, делать подзапрос, но не срабатывает. Строк больше 20 млн, количество символов везде разное и непредсказуемое.
Вопрос кажется каким-то детсадовским, но я не соображу. Подскажите, как отвинтить часть строки между двумя пробелами, куда смотреть?
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
SELECT fio,
REGEXP_SUBSTR(fio, '[^ ]+', 1, 1),
REGEXP_SUBSTR(fio, '[^ ]+', 1, 2),
REGEXP_SUBSTR(fio, '[^ ]+', 1, 3)
FROM src_table;