split_part() 是一个用于按分隔符分割字符串并返回其中一个字段的函数。
split_part() 添加于 PostgreSQL 7.3。
用法
split_part (stringTEXT,delimiterTEXT,nINTEGER) →TEXT
split_part() 可用于从格式化为指定分隔符的字符串中提取单个字段。
从 PostgreSQL 14 开始,可以指定要提取的字段为负数。
请注意,split_part() 不适合用于常规解析 CSV 字符串,因为它会对分隔符的每次出现进行分割,而不考虑分隔符是否包含在引号字符串中。
要按分隔符分割字符串并返回所有元素,请参阅
变更历史
- PostgreSQL 18
- 添加了对非确定性排序规则的支持(提交 329304c9)
- PostgreSQL 14
- 支持负索引(提交 ec0294fb)
- PostgreSQL 7.3
示例
获取由 | 分隔的值的字符串的第一个元素
postgres=# SELECT split_part('A|B|C', '|', 1);
split_part
------------
A
(1 row)
获取相同字符串的最后一个元素(PostgreSQL 14 及更高版本)
postgres=# SELECT split_part('A|B|C', '|', -1);
split_part
------------
C
(1 row)
不适合解析 CSV 字符串
postgres=# SELECT split_part('"foo","bar,baz","boo"', ',', 3);
split_part
------------
baz"
(1 row)
参考资料
- PostgreSQL 文档: 其他字符串函数
有用链接
- PostgreSQL SPLIT_PART() 函数 - w3resource 的概述
- PostgreSQL SPLIT_PART 函数 - PostgreSQL Tutorial 的概述
