Se eu uso array_agg
para coletar nomes, eu os separo por vírgulas, mas caso haja um null
valor, nulo também é considerado um nome no agregado. Por exemplo :
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;
ele retorna em ,Larry,Phil
vez de apenas Larry,Phil
(no meu 9.1.2, ele mostra NULL,Larry,Phil
). como neste violino
Em vez disso, se eu usar string_agg()
, ele mostra apenas os nomes (sem vírgulas vazias ou nulos) como aqui
O problema é que Postgres 8.4
instalei no servidor e string_agg()
não funciona lá. Existe alguma maneira de fazer array_agg funcionar de forma semelhante a string_agg ()?