Thread: Ordering of arrays
A question about arrays.
Is iit possible to reverse an array array?
for example
regexp_split_to_array(/srv/progs/programs/Aliens/The_Aliens_1_ens_envsc2_envsc2.mp4,'('/|\.)'), which splits on either / or . to extract fileparts
It would be useful to be able to have the array returned reversed, so rather than having to use cardinality(array)-1 I have a reversed array and say arr[1]
Also it seems impossible to get a reverse slice (returns null array)
thanks
Hi
pá 23. 8. 2019 v 12:48 odesílatel Mike Martin <mike@redtux.plus.com> napsal:
A question about arrays.Is iit possible to reverse an array array?for exampleregexp_split_to_array(/srv/progs/programs/Aliens/The_Aliens_1_ens_envsc2_envsc2.mp4,'('/|\.)'), which splits on either / or . to extract filepartsIt would be useful to be able to have the array returned reversed, so rather than having to use cardinality(array)-1 I have a reversed array and say arr[1]Also it seems impossible to get a reverse slice (returns null array)
you can use own simple function
create or replace function array_rvrs(anyarray)
returns anyarray as $$
select array(select unnest from unnest($1) with ordinality order by ordinality desc)
$$ language sql immutable strict;
postgres=# select array_rvrs(ARRAY[10, 20, 30, 1, 2, 3]);
┌──────────────────┐
│ array_rvrs │
╞══════════════════╡
│ {3,2,1,30,20,10} │
└──────────────────┘
(1 row)
┌──────────────────┐
│ array_rvrs │
╞══════════════════╡
│ {3,2,1,30,20,10} │
└──────────────────┘
(1 row)
Regards
Pavel
thanks