postgresql 如何在SQL中将字符串中的数字数组转换为整数数组

t8e9dugd  于 2023-04-05  发布在  PostgreSQL
关注(0)|答案(1)|浏览(451)

我有一个像["1,2,3,"]这样的数组。我试图将这个数组中的数字转换为像[1,2,3]这样的纯整数数组。如何做到这一点?
我尝试使用string_to_array(cast(('2,3,') as VARCHAR)),但这个函数期望输入字符串.我尝试铸造到varchar和文本,但它不工作.

xzv2uavs

xzv2uavs1#

string_to_array使用提供的分隔符和可选的空字符串将字符串拆分为数组元素。
在你的例子中,我们需要让你的字符串成为一个有效的逗号分隔字符串,为此我们需要使用REGEXP_REPLACE来使它干净:

REGEXP_REPLACE(mycolumn, '\["|,?"\]', '', 'g')

因此,您的查询可以是:

select *, REGEXP_REPLACE(mycolumn, '\["|,?"\]', '', 'g'), string_to_array(REGEXP_REPLACE(mycolumn, '\["|,?"\]', '', 'g'), ',')
from mytable;

结果:

mycolumn    regexp_replace  string_to_array
["1,2,3,"]  1,2,3           {1,2,3}
["2,3"]     2,3             {2,3}

Demo here

相关问题