[EDIT] оригинальным названием этого вопроса было "Получение последнего элемента массива Postgres, декларативно"
Как получить последний элемент массива в Postgres?
Мне нужно сделать это декларативно, поскольку я хочу использовать его как критерии ORDER BY. Я бы не хотел создавать для него специальную функцию PGSQL, тем меньше изменений в базе данных в этом случае лучше.
Фактически, я хочу, чтобы сортировать по последнему слову определенного столбца, содержащего несколько слов. Изменение модели здесь не является вариантом.
Другими словами, я хочу нажать Ruby sort_by {|x| x.split[-1]}
на уровень базы данных. Я могу разделить значение на массив слов с функциями Postgres string_to_array
или regexp_split_to_array
, а затем как получить его последний элемент?