我需要从字符串中提取值,并使用Postgresql进行处理。
但对于我的特殊情况-如果元素值为null,我想删除它并将下一个元素的索引减1。
结果是:
返回结果
e.g.
assume my string is: "a$$b"
如果我使用
select string_to_array('a$$b','$')
结果是:
{a,,b}
如果我正在尝试:
SELECT unnest(string_to_array('a__b___d_','_')) EXCEPT SELECT ''
它改变了顺序。
1.d
2.a
3.b
订单变更对我不利。
我已经找到了另一种解决方案:
select array_remove( string_to_array(a||','||b||','||c,',') , '')
from (
select
split_part('a__b','_',1) a,
split_part('a__b','_',2) b,
split_part('a__b','_',3) c
) inn
返回结果
{a,b}
然后从数组中 - 我需要按索引提取值
例如 Extract(ARRAY,2)
但是这个方法对我来说似乎有点过度杀伤力 - 有更好或更简单易用的方法吗?