Si j'utilise array_aggpour collecter des noms, j'obtiens mes noms séparés par des virgules, mais au cas où il y aurait une nullvaleur, cette valeur nulle est également considérée comme un nom dans l'agrégat. Par exemple :
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;
il retourne ,Larry,Philau lieu de juste Larry,Phil(dans mon 9.1.2, cela montre NULL,Larry,Phil). comme dans ce violon
Au lieu de cela, si j'utilise string_agg(), il ne me montre que les noms (sans virgules vides ni nulles) comme ici
Le problème est que je l' ai Postgres 8.4installé sur le serveur, et string_agg()ne fonctionne pas là. Existe-t-il un moyen de faire fonctionner array_agg de la même manière que string_agg ()?