HOOOS

PostgreSQL中拆分字符串转换临时表

0 1109 PostgreSQL 数据库代码SQL字符串
Apple

在 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)

点评评价

captcha
健康