Thật không may, PostgreSQL không thực sự hỗ trợ chuẩn SQL MULTISET
toán tử, cũng không phải các tập hợp lồng nhau nói chung. Bạn có thể tạo một ARRAY
trong tổng số ROW
loại như thế này:
select array[row(1, 2), row(3, 4)]
Và bạn thậm chí có thể hủy hợp nhất mảng ở trên
select * from unnest(array[row(1, 2), row(3, 4)]) t(a int, b int)
Vì vậy, nếu một ARRAY
trong tổng số ROW
có thể chấp nhận được đối với bạn, bạn có thể viết một cái gì đó như thế này:
select array_agg(row(a, b))
from (
select ...
) t(a, b)
Nếu bạn có OBJECT
của riêng mình nhập PostgreSQL, bạn có thể truyền ROW
ẩn danh với loại của bạn:
select array_agg(row(a, b)::your_type)
from (
select ...
) t(a, b)