Разбиение столбца ФИО на отдельные элементы 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
→ Ссылка