在 PostgreSQL数据库中要将一个字符串用 指定的一个字符串 来分割,然后转成一个结果集或者临时表,这个需求要实现非常的简单。
string_to_array 函数
参数:string_to_array( 需要被分割的字符串 , 分割符 )
返回:一个数组
代码示例:
SELECT string_to_array('1-2-3-4-5-6-7', '-') AS "array";
返回:
{1,2,3,4,5,6,7}
unnest 函数
语法:unnest(anyarray)
返回值:setof anyelement(可以理解为一个(临时)表)
说明:unnest函数将输入的数组转换成一个表,这个表的每一列都代表相应的一个数组中的元素。如果unnest与其他字段一起出现在select中,就相当于其他字段进行了一次join。
代码示例:
SELECT unnest(ARRAY[1,2,3]) AS "column";
返回:
column
---
1
2
3
---
(3 rows)
结合使用
两个函数结合使用,就可以实现分割转成一个临时表:
SELECT unnest(string_to_array('1-2-3-4-5-6-7', '-')) AS "column";
返回:
column
---
1
2
3
4
5
6
7
---
(7 rows)