我有一个像["1,2,3,"]这样的数组。我试图将这个数组中的数字转换为像[1,2,3]这样的纯整数数组。如何做到这一点?我尝试使用string_to_array(cast(('2,3,') as VARCHAR)),但这个函数期望输入字符串.我尝试铸造到varchar和文本,但它不工作.
["1,2,3,"]
[1,2,3]
string_to_array(cast(('2,3,') as VARCHAR))
xzv2uavs1#
string_to_array使用提供的分隔符和可选的空字符串将字符串拆分为数组元素。在你的例子中,我们需要让你的字符串成为一个有效的逗号分隔字符串,为此我们需要使用REGEXP_REPLACE来使它干净:
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
1条答案
按热度按时间xzv2uavs1#
string_to_array
使用提供的分隔符和可选的空字符串将字符串拆分为数组元素。在你的例子中,我们需要让你的字符串成为一个有效的逗号分隔字符串,为此我们需要使用
REGEXP_REPLACE
来使它干净:因此,您的查询可以是:
结果:
Demo here