string_to_array() 是一个系统函数,用于使用指定的定界符将字符串拆分为一个数组。
string_to_array() 在 PostgreSQL 7.4 中添加。
用法
string_to_array (stringtext,delimitertext[,null_stringtext] ) →text[]
请注意,string_to_array() 不适用于对 CSV 字符串进行通用解析,因为分割发生在定界符的每次出现时,并且它不考虑定界符是否嵌入在带引号的字符串内。
变更历史
- PostgreSQL 18
- 添加了对非确定性排序规则的支持(提交 329304c9)
- PostgreSQL 9.1
- 添加了可选的第三个参数,用于指定一个被视为
NULL值的字符串(提交 33f43725)
- 添加了可选的第三个参数,用于指定一个被视为
- PostgreSQL 7.4
- 添加(提交 b3c0551e)
示例
string_to_array() 的基本用法示例
postgres=# SELECT string_to_array('1|2|3', '|');
string_to_array
-----------------
{1,2,3}
(1 row)
默认情况下,字符串中的 NULL 会被转换为字符串字面量
postgres=# SELECT string_to_array('1|NULL|3', '|');
string_to_array
-----------------
{1,"NULL",3}
(1 row)
要将其解释为实际的 NULL 值,需要将其指定为第三个参数
postgres=# SELECT string_to_array('1|NULL|3', '|', 'NULL');
string_to_array
-----------------
{1,NULL,3}
(1 row)
任何任意值都可以被解释为 NULL
postgres=# SELECT string_to_array('1|xxx|3', '|', 'xxx');
string_to_array
-----------------
{1,NULL,3}
(1 row)
请注意,string_to_array() 不适用于解析任意 CSV 字符串
postgres=# SELECT string_to_array('foo,bar,baz,"baz,boo"', ',');
string_to_array
-------------------------------
{foo,bar,baz,"\"baz","boo\""}
(1 row)
参考资料
- PostgreSQL documentation: 数组函数
反馈
请在此处 提交有关“string_to_array()”的任何评论、建议或更正。