Se uso array_agg
per raccogliere i nomi, ottengo i miei nomi separati da virgole, ma nel caso in cui ci sia un null
valore, anche quel null viene preso come nome nell'aggregato. Per esempio :
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;
ritorna ,Larry,Phil
invece di solo Larry,Phil
(nel mio 9.1.2, mostra NULL,Larry,Phil
). come in questo violino
Se invece lo uso string_agg()
, mi mostra solo i nomi (senza virgole vuote o null) come qui
Il problema è che l'ho Postgres 8.4
installato sul server e string_agg()
non funziona lì. C'è un modo per far funzionare array_agg in modo simile a string_agg ()?