в массив?
Т.е., к примеру, есть таблица
id, text, date
---------------------
1, 'abc', '2021-12-01 00:00:00'
2, 'agh', '2021-12-02 00:00:00'
3, 'hsh', '2021-12-03 00:00:00'
Нужно получить массив {1, 'abc', '2021-12-01 00:00:00'}.
Есть array_agg(field), но эта функция строит массив по значениям столбца
https://sqlize.online/sql/psql13/d45afedb55cd4e60c4cffbcae2af91bb/ Вы не можете создать массив элементов разного типа, зато можете получить json
Тогда более глобальный вопрос. Как можно передать на вход функции таблицу? Перевожу процедуру с MS SQL на PostgreSQL. На MS передается на вход процедуры табличный тип (по факту таблица n столбцов, m строк). В PostgreSQL есть составной тип, но, как я понял, он может быть только в виде одной строки. Следовательно, в функции создается временная таблица, и ее надо разбить построчно на массив составных типов, и передать в другую функцию.
Вот вариант с параметром типа рекорд. Попробуйте подогнать его под себя https://sqlize.online/sql/psql14/37bb09bd075d67ec310455899f18458d/
Благодарю! Завтра попробую.
Обсуждают сегодня