PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Oracle Cast et MULTISET disponibles dans POSTGRES

Malheureusement, PostgreSQL ne supporte pas vraiment le standard SQL MULTISET opérateur, ni les ensembles imbriqués en général. Vous pouvez créer un ARRAY de ROW des types comme celui-ci :

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

Et vous pouvez même désimbriquer le tableau ci-dessus

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

Ainsi, si un ARRAY de ROW est acceptable pour vous, vous pourriez écrire quelque chose comme ceci :

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

Si vous avez votre propre OBJECT tapez dans PostgreSQL, vous pouvez convertir le ROW anonyme à votre type :

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