sql >> Base de Datos >  >> RDS >> PostgreSQL

Oracle Cast y MULTISET disponibles en POSTGRES

Desafortunadamente, PostgreSQL realmente no es compatible con el estándar SQL MULTISET operador, ni conjuntos anidados en general. Podrías crear un ARRAY de ROW tipos como este:

select array[row(1, 2), row(3, 4)]

E incluso podrías anular la matriz anterior

select * from unnest(array[row(1, 2), row(3, 4)]) t(a int, b int)

Entonces, si un ARRAY de ROW es aceptable para usted, podría escribir algo como esto:

select array_agg(row(a, b))
from (
  select ...
) t(a, b)

Si tienes tu propio OBJECT escriba en PostgreSQL, puede emitir el ROW anónimo a tu tipo:

select array_agg(row(a, b)::your_type)
from (
  select ...
) t(a, b)