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

REGEXP_SPLIT_TO_TABLE

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

PostgreSQL 17.9
REGEXP_SPLIT_TO_TABLE(string, pattern[, flags])
  • [ ]необязательная часть
string
Исходная строка
text
pattern
Регулярное выражение для разделителя
text
flags
Флаги, например i — без учёта регистра
textНеобязательный
bceimnpqstwx

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

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

Примеры

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

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

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

PostgreSQL 17.9
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.

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