Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Массив в мультимассив  [new]
Alex963
Member

Откуда:
Сообщений: 27
Здравствуйте!

подскажите пожалуйста как можно из массива вида {'test1','test2','test3'} сделать {{'test1', 1,2},{'test2', 3,4},{'test3', 5,6}}

получается переделать каждый элемент в массиве еще в один массив и добавить туда значений

пока гугл не помогает, а сам не могу догнать как так сделать
4 июн 21, 14:55    [22331402]     Ответить | Цитировать Сообщить модератору
 Re: Массив в мультимассив  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1312
Alex963,

определитесь сперва с желаемым результатом. Массива {'test1', 1,2} быть не может. {'test1', '1','2'} может быть? Композитный тип данных? json?
4 июн 21, 15:03    [22331411]     Ответить | Цитировать Сообщить модератору
 Re: Массив в мультимассив  [new]
Alex963
Member

Откуда:
Сообщений: 27
Melkij,

вы правы, {'test1', '1','2'} такой результат должен быть
4 июн 21, 15:05    [22331412]     Ответить | Цитировать Сообщить модератору
 Re: Массив в мультимассив  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1312
Alex963,

select array_agg(array[i, '1', '2']) from unnest(array['test1','test2','test3']) as i;
4 июн 21, 15:34    [22331440]     Ответить | Цитировать Сообщить модератору
 Re: Массив в мультимассив  [new]
Alex963
Member

Откуда:
Сообщений: 27
Melkij,
Большое спасибо! вот конечный вид селекта какой получился.

SELECT t.id, array_agg(array [t.un, '1', '2'])
FROM (
         SELECT id, unnest(tags) AS un
         FROM users
         WHERE tags IS NOT NULL
     ) AS t
GROUP BY id;



можете скинуть номер карты или сервис куда бы я смог перечислить вам на кофе ))
4 июн 21, 15:46    [22331447]     Ответить | Цитировать Сообщить модератору
 Re: Массив в мультимассив  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1312
Alex963,

группировка лишняя
SELECT t.id, array(select array [un, '1', '2']) from unnest(t.tags) as un)
FROM users as t
WHERE t.tags IS NOT NULL;
4 июн 21, 16:24    [22331482]     Ответить | Цитировать Сообщить модератору
 Re: Массив в мультимассив  [new]
Alex963
Member

Откуда:
Сообщений: 27
Melkij
Alex963,

группировка лишняя
SELECT t.id, array(select array [un, '1', '2']) from unnest(t.tags) as un)
FROM users as t
WHERE t.tags IS NOT NULL;


спасибо подправил, я вам написал на почту, ответьте плиз
4 июн 21, 16:40    [22331489]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить