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

REGEXP_SPLIT_TO_TABLE

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

PostgreSQL 17.5
REGEXP_SPLIT_TO_TABLE(string, pattern[, flags])

Параметры

stringtext
Исходная строка
patterntext
Регулярное выражение для разделителя
flagstextнеобязательный
Флаги, например i — без учёта регистра

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

Набор значений text — по строке таблицы на каждую часть; пустые части между соседними разделителями и по краям тоже возвращаются

Примеры

Список с разными разделителями

PostgreSQL 17.5
SELECT REGEXP_SPLIT_TO_TABLE('sql, python;java', '[,;] *');
regexp_split_to_table
sql
python
java

Имена членов семьи по словам

PostgreSQL 17.5
SELECT member_name,
	REGEXP_SPLIT_TO_TABLE(member_name, ' ') AS name_part
FROM FamilyMembers;
member_namename_part
Headley QuinceyHeadley
Headley QuinceyQuincey
Flavia QuinceyFlavia
Flavia QuinceyQuincey
Andie QuinceyAndie
Andie QuinceyQuincey
Lela QuinceyLela
Lela QuinceyQuincey
Annie QuinceyAnnie
Annie QuinceyQuincey

Подробности

Функция возвращает набор строк, поэтому в SELECT размножает строку таблицы — по одной на каждую часть. Получить части массивом можно через REGEXP_SPLIT_TO_ARRAY, а разбить строку по обычному разделителю без шаблона — через STRING_TO_TABLE.

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