Объединение всей выборки в одном запросе в SQL

Рейтинг: 1Ответов: 1Опубликовано: 02.03.2015

Имеется запрос:

SELECT array_to_json(ARRAY[param[3],data[1],param[4]]) FROM jf_users;

который возвращает:

["15dddf","root1","192"]
["b66e08","root2","192"]
["38d414","root3","192"]

Возможно ли силами SQL, пропустив его через еще один запрос (например, SELECT ... FROM (первый запрос) AS sub;), получить такой результат запроса в одну строку:

["15dddf","root1","192"], ["b66e08","root2","192"], ["38d414","root3","192"]

Т.е. суть вопроса заключается в основном в том, как перебрать результат запроса и склеить все строки ответа первого запроса в одну строку, добавив между ними какой-то текст.

Ответы

▲ 2Принят

Попробуйте так:

SELECT array_to_string(array_agg(array_to_json(ARRAY[param[3],data[1],param[4]])),',') FROM jf_users;

Обновление

Функция array_agg поддерживает сортировку: array_agg(<выражение> ORDER BY <поле>), не знаю, поможет Вам это или нет, ибо не знаком со структурой таблицы.