REGEXP_SPLIT_TO_TABLE
Splits a string by a regular expression and returns each part as a separate row.
PostgreSQL 17.9
REGEXP_SPLIT_TO_TABLE(string, pattern[, flags])- [ ]optional part
- string
- Source stringtext
- pattern
- Regular expression for the separatortext
- flags
- Flags, for example i to ignore casetextOptionalbceimnpqstwx
Return value
A set of text values, one row per part; empty parts between adjacent separators and at the edges are returned too
Examples
List with different separators
PostgreSQL 17.9
SELECT REGEXP_SPLIT_TO_TABLE('sql, python;java', '[,;] *');Family member names by word
PostgreSQL 17.9
SELECT member_name,
REGEXP_SPLIT_TO_TABLE(member_name, ' ') AS name_part
FROM FamilyMembers;Details
The function returns a set of rows, so in SELECT it multiplies a table row, one per part. To get the parts as an array, use REGEXP_SPLIT_TO_ARRAY, and to split by a plain delimiter without a pattern, STRING_TO_TABLE.