做 unnest 時我需要獲取陣列索引。我試過 row_number() Over() 但這是計算行號,而不是陣列索引。我也試過 WITH ORDINALITY 但它只適用于 from 子句。
select id, unnest(fname), status
from testunnest;
表中的行 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
uj5u.com熱心網友回復:
使用子句unnest()中的函式,然后您可以添加回傳陣列索引的選項fromwith ordinality
select t.id, u.name, t.status, u.idx
from testunnest t
cross join unnest(t.fname) with ordinality as u(name, idx);
一般來說,無論如何都建議在 FROM 子句中使用 set-returning 函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/410430.html
標籤:
