PostgreSQL string_to_table() 函数

PostgreSQL string_to_table() 函数将一个指定的字符串按照指定的分隔符拆分并将结果作为表返回。

此函数和 regexp_split_to_table() 函数类似。

string_to_table() 语法

这里是 PostgreSQL string_to_table() 函数的语法:

string_to_table(string text, delimiter text) -> set

或者

string_to_table(string text, delimiter text, null_string text) -> set

参数

string
必需的。 一个要拆分的字符串。
delimiter
必需的。 分隔符。
null_string
可选的。 一个字符串。拆分后的部分中与它匹配的元素将被替换为 NULL

返回值

PostgreSQL string_to_table() 函数返回一个表(行的集合),该表中的行就是字符串 string 按照分隔符 delimiter 拆分的所有部分。

如果 delimiterNULL,字符串中的所有字符都将单独成为一行。

如果 delimiter 是一个空字符串,那么整个字符串将成为唯一的行。

如果 null_string 不为 NULL,那么拆分后的结果中的与它匹配的部分将被替换为 NULL

string_to_table() 示例

这个示例演示了如何使用 string_to_table() 函数将一个字符串根据分隔符拆分成表:

SELECT string_to_table('ab,cd,ef,gh', ',');
 string_to_table
-----------------
 ab
 cd
 ef
 gh

如果 delimiterNULL,字符串中的所有字符都将成为结果集中的成员。比如:

SELECT string_to_table('ab,cd,ef,gh', NULL);
 string_to_table
-----------------
 a
 b
 ,
 c
 d
 ,
 e
 f
 ,
 g
 h

这里,由于 delimiterNULL,字符串中每个字符都成为一个独立的行。

如果 delimiter 是一个空字符串,那么整个字符串将成为表中唯一的行。比如:

SELECT string_to_table('ab,cd,ef,gh', '');
 string_to_table
-----------------
 {"ab,cd,ef,gh"}

如果 null_string 不为 NULL,那么拆分后的结果中的与它匹配的部分将被替换为 NULL。比如:

SELECT string_to_table('ab,cd,ef,gh', ',', 'cd');
 string_to_table
-----------------
 ab

 ef
 gh