Получить из ФИО Фамилию и инициалы имени и отчества
Есть таблица man с полем text. Поле содержит ФИО полностью. Как можно получить фамилию и инициалы имени и отчества?
Например вместо Иванов Сергей Михайлович получить Иванов С.М.
Ответы (1 шт):
Автор решения: Akalit
→ Ссылка
Реализация в Oracle
with man as (
select 'Иванов Петр Васильевич' as text from dual union all
select 'Борисов Богдан Егорович' as text from dual union all
select 'Жуков Никита Тимофеевич' as text from dual)
select man.text,
regexp_replace(man.text, ' (.*)',' ',2,1) ||
regexp_replace(regexp_replace(man.text, ' (.*)|^[^ ]* '),'.*','.',2,1)||
regexp_replace(regexp_replace(man.text, '(.*) '),'.*','.',2,1) INITIALS
from man;
--------------------------------------------------------------------
TEXT INITIALS
Иванов Петр Васильевич Иванов П.В.
Борисов Богдан Егорович Борисов Б.Е.
Жуков Никита Тимофеевич Жуков Н.Т.
- пример на фидле dbfiddle