Nếu tôi sử dụng array_agg
để thu thập tên, tôi sẽ đặt tên của mình được phân tách bằng dấu phẩy, nhưng trong trường hợp có null
giá trị, giá trị rỗng đó cũng được lấy làm tên trong tổng hợp. Ví dụ :
SELECT g.id,
array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users,
array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users
FROM groups g
GROUP BY g.id;
nó trả về ,Larry,Phil
thay vì chỉ Larry,Phil
(trong 9.1.2 của tôi, nó hiển thị NULL,Larry,Phil
). như trong này fiddle
Thay vào đó, nếu tôi sử dụng string_agg()
, nó chỉ hiển thị cho tôi các tên (không có dấu phẩy hoặc dấu trống) như ở đây
Vấn đề là tôi đã Postgres 8.4
cài đặt trên máy chủ, và string_agg()
không hoạt động ở đó. Có cách nào để làm cho array_agg hoạt động tương tự như string_agg () không?