Справочник по функциям

SPLIT_PART

Аналог в MySQL:

Разбивает строку по разделителю и возвращает часть с указанным номером.

PostgreSQL 17.9
SPLIT_PART(string, delimiter, part_number)
string
Исходная строка
text
delimiter
Разделитель, может состоять из нескольких символов
text
part_number
Номер части с 1; отрицательный считается с конца
integer

Возвращаемое значение

Часть строки (text); пустая строка, если части с таким номером нет; отрицательный номер отсчитывается с конца, а 0 вызывает ошибку

Примеры

Второй элемент по разделителю

PostgreSQL 17.9
SELECT SPLIT_PART('a|b|c', '|', 2);
split_part
b

Последний элемент через отрицательный номер

PostgreSQL 17.9
SELECT SPLIT_PART('a|b|c', '|', -1);
split_part
c

Фамилия из полного имени

PostgreSQL 17.9
SELECT member_name,
	SPLIT_PART(member_name, ' ', 2) AS last_name
FROM FamilyMembers;
member_namelast_name
Headley QuinceyQuincey
Flavia QuinceyQuincey
Andie QuinceyQuincey
Lela QuinceyQuincey
Annie QuinceyQuincey
Ernest ForrestForrest
Constance ForrestForrest
Wednesday AddamsAddams

Подробности

Разделитель — обычная строка, а не регулярное выражение: чтобы разбить строку по шаблону, используйте REGEXP_SPLIT_TO_TABLE. С пустым разделителем вся строка считается первой частью.

Смотрите также