在 PGSQL 中执行 unnest 时如何获取数组索引
How to get array index when doing unnest in PGSQL
我需要在执行 unnest 时获取数组索引。我试过 row_number() Over() 但这是计算行号,而不是数组索引。我也试过 WITH ORDINALITY 但它只适用于 from 子句。
select id, unnest(fname), status
from testunnest;
Table testunnest
中的行
112w,{john,sam},yes
2wew,{josh,Nick,Jeny},no
以上查询返回结果为
112w john yes
112w sam yes
2wew josh No
2wew Nick No
2wew Jeny No
预计是
112w john yes 1
112w sam yes 2
2wew josh No 1
2wew Nick No 2
2wew Jeny No 3
在from
子句中使用unnest()
函数,然后可以添加with ordinality
选项,returns数组索引
select t.id, u.name, t.status, u.idx
from testunnest t
cross join unnest(t.fname) with ordinality as u(name, idx);
一般来说,无论如何都建议在 FROM 子句中使用返回集合的函数。
我需要在执行 unnest 时获取数组索引。我试过 row_number() Over() 但这是计算行号,而不是数组索引。我也试过 WITH ORDINALITY 但它只适用于 from 子句。
select id, unnest(fname), status
from testunnest;
Table testunnest
中的行112w,{john,sam},yes
2wew,{josh,Nick,Jeny},no
以上查询返回结果为
112w john yes
112w sam yes
2wew josh No
2wew Nick No
2wew Jeny No
预计是
112w john yes 1
112w sam yes 2
2wew josh No 1
2wew Nick No 2
2wew Jeny No 3
在from
子句中使用unnest()
函数,然后可以添加with ordinality
选项,returns数组索引
select t.id, u.name, t.status, u.idx
from testunnest t
cross join unnest(t.fname) with ordinality as u(name, idx);
一般来说,无论如何都建议在 FROM 子句中使用返回集合的函数。