В: я хочу отсортировать по последнему слову определенного столбца
При работе с фактическим массивом text
(не строкой) используйте array_upper()
в индексе.
Демонстрация для одномерного массива
WITH x(a) AS (
VALUES
('{zoo, zar, zaz}'::text[])
,('{3,4,5,6}')
,('{foo, bar, baz}')
)
SELECT *
FROM x
ORDER BY <b>a[array_upper(a, 1)]</b>;
Демонстрация для 2-мерного массива
WITH x(a) AS (
VALUES
('{{zoo, zar, zaz}
,{4,5,6}
,{14,15,16}
,{foo, bar, zzzaz}}'::text[])
,('{{zoo, zar, baz}
,{4,5,6}
,{14,15,16}
,{foo, bar, aaaaz}}'::text[])
)
SELECT *
FROM x
ORDER BY <b>a[array_upper(a, 1)][array_upper(a, 2)]</b>;