为了给每个name的tag按原始位置增加序号,需要建立以下函数,返回数组值及其对应的下标:
create or replace function f_unnest_ord(anyarray, out val... 前面两种是相对通用的方法,关系数据库的SQL都支持,而unnest是PostgreSQL独有的函数。...有了前面的基础,这个实现就比较简单了,只要执行下面的查询即可:
select *
from (select c1,split_part(unnest(c2),':',1) c2, split_part...(unnest(c2),':',2) c3
from (select c1,string_to_array(c2,',') c2
from (...(c2),':',1) c2, split_part(unnest(c2),':',2) c3
test(# from (select c1,string_to_array(c2,