PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Oracle Cast und MULTISET sind in POSTGRES verfügbar

Leider unterstützt PostgreSQL den SQL-Standard MULTISET nicht wirklich Operator, noch verschachtelte Mengen im Allgemeinen. Sie könnten ein ARRAY erstellen von ROW Typen wie folgt:

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

Und Sie könnten das obige Array sogar entschachteln

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

Wenn also ein ARRAY von ROW für Sie akzeptabel ist, könnten Sie etwa so schreiben:

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

Wenn Sie Ihr eigenes OBJECT haben Geben Sie PostgreSQL ein, Sie können den anonymen ROW umwandeln zu Ihrem Typ:

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