PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Oracle Cast e MULTISET disponíveis no POSTGRES


Infelizmente, o PostgreSQL não suporta o padrão SQL MULTISET operador, nem conjuntos aninhados em geral. Você pode criar um ARRAY de ROW tipos assim:
select array[row(1, 2), row(3, 4)]

E você pode até desaninhar a matriz acima
select * from unnest(array[row(1, 2), row(3, 4)]) t(a int, b int)

Então, se um ARRAY de ROW é aceitável para você, você pode escrever algo assim:
select array_agg(row(a, b))
from (
  select ...
) t(a, b)

Se você tiver seu próprio OBJECT digite no PostgreSQL, você pode converter o anônimo ROW ao seu tipo:
select array_agg(row(a, b)::your_type)
from (
  select ...
) t(a, b)