Разбиение столбца ФИО на отдельные элементы sql
Подскажите пожалуйста, как с помощью sql можно разбить строку ФИО на отдельные ее части. Есть столбец, с ФИО моя задача в нем определить самое длинное имя, именно имя. Например 'Иванов Иван Иванович.'
Не совсем понимаю как применить substring.
Спасибо.
Ответы (2 шт):
Автор решения: Aziz Umarov
→ Ссылка
Я думаю что у Вас таблица user и поле full_name и Имя в промежутке между пробелами,
тогда
SELECT substring(full_name from '\s+[^\s]+') As name FROM user;
Конечно не мешало бы сделать trim к тому же
SELECT trim(substring(full_name from '\s+[^\s]+')) as name FROM user;
Ну или использовать другую функцию
SELECT trim((regexp_split_to_array(full_name, E'\\s+'))[2] ) as name FROM user;
PS. Можно ещё позициями это вычислить
Автор решения: gusarov.f
→ Ссылка
SELECT
split_part(column, ' ', 1) as first_name,
split_part(column, ' ', 2) as middle_name,
split_part(column, ' ', 3) as last_name
FROM table
WHERE id = 1