string_to_table() 是一个在指定分隔符处拆分字符串并返回值的集合的函数。
string_to_table() 在 PostgreSQL 14 中添加。
用法
string_to_table (stringTEXT,delimiterTEXT[,null_stringTEXT] ) → SETOF TEXT
string_to_table() 提供了与 string_to_array() 相对应的集合式操作,其功能相同,但比 unnest(string_to_array()) 稍快。
请注意,string_to_table() 不适合用于通用解析 CSV 字符串,因为它会在每个分隔符出现时进行拆分,并且不考虑分隔符是否包含在引号字符串中。
变更历史
- PostgreSQL 18
- 添加了对非确定性排序规则的支持(提交 329304c9)
- PostgreSQL 14
- 添加(提交 66f16306)
示例
string_to_table() 的基本用法
postgres=# SELECT string_to_table('foo,bar,baz,',');
string_to_table
-----------------
foo
bar
baz
(3 rows)
请注意,string_to_table() **不**适合解析 CSV 字符串
postgres=# SELECT string_to_table('foo,bar,baz,"baz,boo"', ',');
string_to_table
-----------------
foo
bar
baz
"baz
boo"
(5 rows)
参考资料
- PostgreSQL 14 文档: 其他字符串函数
