Postgres将Text数组转换为Int数组

时间:2017-05-23 17:23:31

标签: arrays postgresql

为了使用Unnest功能,我想将列表转换为数组。

这是我的文字类型列表。它是此函数的输出(How get all positions in a field in PostgreSQL?):

108,109,110,114,115,116,117,156,157,200,201,205

我用

转换为数组
array[108,109,110,114,115,116,117,156,157,200,201,205]

结果是类型文本[]:

"{"108,109,110,114,115,116,117,156,157,200,201,205"}"

使用这种数组,不需要的函数不起作用所以我想我想转换为Int数组

由于

2 个答案:

答案 0 :(得分:2)

with the_data(str) as (
    select '108,109,110,114,115,116,117,156,157,200,201,205'::text
)

select elem
from the_data,
unnest(string_to_array(str, ',')) elem;

 elem 
------
 108
 109
 110
 114
 115
 116
 117
 156
 157
 200
 201
 205
(12 rows)

答案 1 :(得分:1)

如果我正确理解,您需要这个(无需转换为INT):

select unnest( string_to_array('108,109,110,114,115,116,117,156,157,200,201,205', ',' ) )