Si j'utilise array_agg
pour collecter des noms, j'obtiens mes noms séparés par des virgules, mais au cas où il y aurait une null
valeur, 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,Phil
au 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.4
installé 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 ()?