Jika saya menggunakan array_agg
untuk mengumpulkan nama, saya mendapatkan nama saya dipisahkan dengan koma, tetapi jika ada null
nilai, null itu juga diambil sebagai nama dalam agregat. Sebagai contoh :
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;
itu kembali ,Larry,Phil
bukan hanya Larry,Phil
(di 9.1.2 saya, itu menunjukkan NULL,Larry,Phil
). seperti di biola ini
Sebaliknya, jika saya menggunakan string_agg()
, ini hanya menunjukkan nama (tanpa koma kosong atau null) seperti di sini
Masalahnya adalah saya telah Postgres 8.4
menginstal di server, dan string_agg()
tidak berfungsi di sana. Apakah ada cara untuk membuat array_agg berfungsi mirip dengan string_agg ()?